状態保存固有関数

状態保存固有関数

私は多くの重複情報を生成するプログラムを持っています。で生成された一意の行を保存したいのですが、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ソリューションはそうではないため、メモリ使用量が問題の場合は適切ではない可能性があります。

関連情報