私は多くの重複情報を生成するプログラムを持っています。で生成された一意の行を保存したいのですが、stdout
次のように複数の手順で保存することはできません。
./prog > out cat out | sort | uniq > out2
out
ファイルが大きすぎます。stateful_uniq
行が消費され、以前に見られなかった行のみをエクスポートする「状態保存固有」機能をどのように実装できますか?
答え1
./prog | sort | uniq > out2
やりたいことができませんか?それとも./prog | sort -u > out2
支持sort
しても…
出力をソートせずに表示される一意の行を表示するには、連想配列を使用できますawk
。
./prog | awk '!(count[$0]++)'
指摘したとおりスティーブン・チャジェラス、sort
一時ファイルを使用してメモリ使用量を制限します。このawk
ソリューションはそうではないため、メモリ使用量が問題の場合は適切ではない可能性があります。