除一个之外的 Cat 文件

除一个之外的 Cat 文件

我正在寻找一种方法来连接目录中具有给定扩展名的所有文件(除了一个)。喜欢:

cat *.txt !(DISCARD.txt)  > catKEPT

这应该连接目录中除 DISCARD.txt 之外的所有 *.txt 文件。

答案1

find . -maxdepth 1 -iname '*.txt' -not -name 'DISCARD.txt' -exec cat {} +>catKEPT

答案2

如果您正在使用bash(大多数情况下都是这种情况),您可以使用extglobshell 选项,该选项将使用更强大的模式匹配语法来扩展您的 shell。

您可以使用 打开它shopt -s extglob,并使用 关闭它shopt -u extglob

在您的示例中,您只需执行以下操作:

$ shopt -s extglob
$ cat -- !(DISCARD).txt > catKEPT

您可以在此处找到有关此命令的更多信息堆栈溢出答案

相关内容