Answers:
你可以做:
for f in *.txt; do (cat "${f}"; echo) >> finalfile.txt; done
finalfile.txt
在运行上述命令之前,请确保该文件不存在。
如果被允许使用,awk
您可以执行以下操作:
awk 'FNR==1{print ""}1' *.txt > finalfile.txt
AWK '{print $0}' *.txt
awk 'FNR==1 && NR > 1 ...'
。
>finalfile.txt
后面,则done
可以覆盖而不是追加,这将消除在循环之前确保文件丢失或为空的要求。
如果是我这样做,我将使用sed:
sed -e '$s/$/\n/' -s *.txt > finalfile.txt
在此sed模式中,$具有两个含义,首先,它仅匹配最后一行的行号(作为要在其上应用模式的行的范围),其次,它与替换模式中的行的末尾匹配。
如果您的sed版本没有-s
(单独处理输入文件),则可以循环执行以下操作:
for f in *.txt ; do sed -e '$s/$/\n/' $f ; done > finalfile.txt
sed -s '$G' *.txt > finalfile.txt
find
代替了而使计算机崩溃了*.txt
,这意味着该文件已附加到其自身上!