web-dev-qa-db-ja.com

`sort -u`と` sort |の使用の違いuniq -u`

特定のファイルで1回だけ出現するテキストの行を見つけることで構成されるbashを調査しているときに、あるレベルに達しました。

sort -u fileコマンドの出力がsort file| uniq -uの出力と異なるのはなぜですか?彼らは同じではないのですか?

3
andrediasesp

sort -uおよびsort | uniqdoは同じ出力を生成します *:入力のすべての行を昇順で1つずつ正確に。これがuniqのデフォルトの動作です。

uniq -u一方で、 に尋ねます。

-u入力で繰り返される行の書き込みを抑制します。

これはまったく異なる動作です。繰り返さない行だけが出力されます。ファイルが最初にソートされている場合、それはファイル全体で1回だけ表示される行を意味します(これは必要なことです)。


* sortuniqが同等性をどのように考慮するかについて、いくつかの の警告があります。ステファンは、関連する質問へのこの回答で指摘しています 。 POSIXロケールまたは正規化された形式のファイルの場合、それらは同一です。他の人にとっては、識別可能な違いがある場合があります。

7
Michael Homer