ファイルを1行ずつ標準出力にダンプし、その行を削除するユーティリティはありますか?
cat
もちろん、配信したい大容量ファイルがたくさんあります。
cat *.txt > merged.txt
ただし、これはファイルが元々占有していたスペースの2倍を占めますtxt
。cat
このように削除した後
cat *.txt > merged.txt && rm -rf *.txt
2倍のスペースが必要でありながらストレージ要件の削減
私は元のファイルから行を削除しながら、行を標準出力にストリーミングするコマンドを探しています。
<some command> *.txt > merged.txt
このように、*.txt
+merged.txt
が使用する合計スペースは*.txt
最初に必要なスペースを超えません。
ベストアンサー1
1行ずつ整理するのは少しトリッキーに聞こえますが、ファイルごとに実行することを許可した場合(保存容量がすべての*.txt
ファイル+その1つを超えないように):
find -name "*.txt" -exec cat {} >> result.txt \; -exec \rm -f {} \;
特に注意してください! find コマンドを実行する前に、必ず結果を確認してください。それ以外の場合は、rm
削除しない項目を光の速度で削除します。