私は複数のファイルをbashの1つのファイルにマージしたいと思っています。私はコードを使用し、unixでファイルをマージして削除するには?
猫FILE1 FILE2 FILE3 FILE4 >>出力
しかし、私のコンピュータがメモリ不足を持っているので、私はマージされたファイルを作成することができないのです。代わりに、一度データが出力ファイルに追加されたら、file1 file2 file3を同時に削除する方法を知っていますか?
私は複数のファイルをbashの1つのファイルにマージしたいと思っています。私はコードを使用し、unixでファイルをマージして削除するには?
猫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