特定のファイルで1回だけ出現するテキストの行を見つけることで構成されるbashを調査しているときに、あるレベルに達しました。
sort -u file
コマンドの出力がsort file| uniq -u
の出力と異なるのはなぜですか?彼らは同じではないのですか?
sort -u
およびsort | uniq
doは同じ出力を生成します *:入力のすべての行を昇順で1つずつ正確に。これがuniq
のデフォルトの動作です。
uniq -u
一方で、 に尋ねます。
-u
入力で繰り返される行の書き込みを抑制します。
これはまったく異なる動作です。繰り返さない行だけが出力されます。ファイルが最初にソートされている場合、それはファイル全体で1回だけ表示される行を意味します(これは必要なことです)。
* sort
とuniq
が同等性をどのように考慮するかについて、いくつかの の警告があります。ステファンは、関連する質問へのこの回答で指摘しています 。 POSIXロケールまたは正規化された形式のファイルの場合、それらは同一です。他の人にとっては、識別可能な違いがある場合があります。