以递归方式连接所有文件,忽略一个文件扩展名

时间:2014-08-14 15:37:58

标签: unix

我想创建一个连接文件,它附加除目录中的.XYZ之外的所有文件(递归到子目录)。

我尝试了这个,但它不起作用:

find . -type f | grep -v *.XYZ -exec cat {} \; > /tmp/alldata.txt

这样可行,但无法排除以“.XYZ”结尾的文件:

 find . -type f -exec cat {} \; > /tmp/alldata.txt

1 个答案:

答案 0 :(得分:2)

find . -type f -not -name "*.XYZ" -exec cat {} \; > /tmp/alldata.txt

gnu find的更新版本包括-not否定下一个参数。在这种情况下,您可以将其与-name参数结合使用,以便在不调用grep -v的情况下获得所需内容。