sort コマンドに関連する例外が偶然に見つかりましたが、なぜこれが起こるのか説明が見つかりませんでした。
次のコマンドを実行します。
cat ~/.bash_history | uniq -c | sort -h -r | head
システムで実行された最も一般的な10個のコマンドシーケンスを出力するようになっていますが、代わりに失敗し、出力がまるで一度に実行したように見えます。
しかし、実行するとき:
cat ~/.bash_history | sort | uniq -c | sort -h -r | head
うまくいくようですが、理由を理解できません。誰かが説明できますか?
ベストアンサー1
uniq
フィルタのみ近いワイヤー。次のようなファイルがあるとしましょう。
$ cat foobar.txt
foo
bar
foo
隣接していない2本の線がありますfoo
。次に、各ファイルはuniq -c
一度計算され、ファイルを最初にソートすることは、そのファイルを隣接するものとしてuniq -c
扱い、2回現れる行として計算することを意味します。
$ uniq -c foobar.txt
1 foo
1 bar
1 foo
$ sort foobar.txt | uniq -c
1 bar
2 foo