我想在bash中将多个文件合并为单个文件。所以我使用代码,
cat file1 file2 file3 file4>>输出
但由于我的计算机内存不足,我无法创建合并文件。相反,你知道如何将数据添加到输出文件后同时删除file1 file2 file3吗?
答案 0 :(得分:4)
for i in file1 file2 file3 file4 ; do cat "$i" >> output && rm "$i" || break ; done
因此,对于每个文件,它会将内容附加到output
并在附加后删除源文件。如果出现任何问题,它就会停止。
答案 1 :(得分:0)
我能想到的最好的是:
mv file1 output
cat file2 >> output && rm file2 &&
cat file3 >> output && rm file3
这里的rm
几乎是最早的有用机会。
当然,您可以在for
循环中执行此操作。
mv file1 output
for f in file*; do
cat $f >> output && rm $f
done