2017-07-11 9 views
1

私は複数のファイルをbashの1つのファイルにマージしたいと思っています。私はコードを使用し、unixでファイルをマージして削除するには?

猫FILE1 FILE2 FILE3 FILE4 >>出力

しかし、私のコンピュータがメモリ不足を持っているので、私はマージされたファイルを作成することができないのです。代わりに、一度データが出力ファイルに追加されたら、file1 file2 file3を同時に削除する方法を知っていますか?

答えて

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

したがって、ファイルごとに、outputに内容を追加し、追加されたソースファイルを削除します。何かがうまくいかないと、それは止まる。

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 
関連する問題