Bashを閲覧している間に、ファイルに一度だけ現れるテキスト行を見つけることに関連するレベルが見つかりました。
コマンドの出力がの出力とsort -u file
異なるのはなぜですかsort file| uniq -u
?彼らは同じでなければなりませんか?
答え1
sort -u
そしてsort | uniq
同じ出力を生成します*:入力のすべての行(昇順で行ごとに正確に1回)。これがデフォルトの動作ですuniq
。
-u
入力に重複した行を書き込むのを抑制します。
これは非常に異なる動作です。その行だけ欲しくない出力を繰り返します。ファイルが最初にソートされると、この行はファイル全体に一度だけ表示されます(必要に応じて)。
*一部ありますStéphaneが関連する質問に対する回答で指摘した平等をいつ、どのように考慮すべきかについてのsort
警告uniq
。 POSIXロケールまたは一部の標準化された文書形式では、他の場合でも同じですが、かなりの違いがある可能性があります。