我正在寻找一种方法来连接目录中具有给定扩展名的所有文件(除了一个)。喜欢:
cat *.txt !(DISCARD.txt) > catKEPT
这应该连接目录中除 DISCARD.txt 之外的所有 *.txt 文件。
答案1
find . -maxdepth 1 -iname '*.txt' -not -name 'DISCARD.txt' -exec cat {} +>catKEPT
答案2
如果您正在使用bash
(大多数情况下都是这种情况),您可以使用extglob
shell 选项,该选项将使用更强大的模式匹配语法来扩展您的 shell。
您可以使用 打开它shopt -s extglob
,并使用 关闭它shopt -u extglob
。
在您的示例中,您只需执行以下操作:
$ shopt -s extglob
$ cat -- !(DISCARD).txt > catKEPT
您可以在此处找到有关此命令的更多信息堆栈溢出答案。