如何合并和删除unix中的文件?

How to merge and delete the files in unix?

我想在 bash 中将多个文件合并为一个文件。所以我使用代码,

cat file1 file2 file3 file4 >> 输出

但是因为我的电脑内存不足,所以我无法创建合并文件。相反,您知道如何在数据添加到输出文件后同时删除 file1 file2 file3 吗?

for i in file1 file2 file3 file4 ; do cat "$i" >> output && rm "$i" || break ; done

因此对于每个文件,它会将内容附加到 output 并在附加后删除源文件。如果出现任何问题,它就会停止。

我能想到的最好的是:

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