我需要連接一系列目錄中的大量文本文件。所有文本文件具有相同的名稱,但某些文件夾不包含該文件,只需要跳過。UNIX:cat大量文件 - 輸出翻倍
當我使用cat ./**/File.txt > newFile.txt
時出現以下錯誤/bin/cat: Argument list too long
。
我試着用幾種不同的方式使用ulimit
命令,但那不起作用。
我曾嘗試:
find . -name File.txt -exec cat {} \; > newFile.txt
find . -name File.txt -exec cat {} \+ > newFile.txt
find . -type f -name File.txt | xargs cat
,這導致文件被連接在一起的兩倍。舉例來說,我有一個名爲FILE.TXT,每一個不同的目錄中,每3個文本文件,以不同的一行文字:
test1的
test2的
TEST3
當我執行上述命令時,我的newFile.txt如下所示:
test1
test2的
TEST3
test1的
test2的
TEST3
我想不通爲什麼會這樣兩次。當我使用命令cat ./**/File.txt > newFile.txt
在我小的測試集,它工作正常,我結束了一個文件,該文件有:
test1的
test2的
TEST3
我也試過
for a in File.txt ; do cat $a >> newFile.txt ; done
但是得到消息
cat: File.txt: No such file or directory
因爲某些目錄不包含這個文本文件,是我的猜測。
是否有另一種方式來做到這一點,或者是有兩個原因我的文件被連接在一起?