3

シェルスクリプトでそれらを呼び出すときの順序uniqに違いはありますか? sort私はここで時間と空間について話している。

grep 'somePattern' | uniq | sort

対。

grep 'somePattern' | sort | uniq

140,000 行のテキストファイルでの簡単なテストでは、最初の方法 (uniq 値を取得してから並べ替える) の速度がわずかに向上しました (5.5 秒対 5.0 秒)。

メモリ使用量の測定方法がわかりませんが…</p>

ここでの質問は次のとおりです。順序は違いますか? または、grepから返された行に依存していますか(重複が多い/少ない)

4

3 に答える 3

10

これsort -uはまさにこのシナリオに適しており、並べ替えと一意化の両方を行うと思います。sort明らかに、どちらの順序でもuniq個別に呼び出すよりも効率的です。

于 2009-09-09T21:37:45.047 に答える
9

のマニュアルページには次のように記載されているため、唯一の正しいuniq順序はafterを呼び出すことです。sortuniq

INPUT (または標準入力) から連続する同一行を 1 つを除いてすべて破棄し、OUTPUT (または標準出力) に書き込みます。

したがって、それは

grep 'somePattern' | sort | uniq
于 2009-09-09T21:38:14.657 に答える
3

uniq は、重複を削除するためにソートされるアイテムに依存します (以前のアイテムと現在のアイテムを比較するため)。試してみてください。

于 2009-09-09T21:39:19.320 に答える