並べ替えの違い|uniqおよびsort-u
1. 概要
このチュートリアルでは、Linuxコマンドsort|を簡単に比較します。 uniqおよびsort-u。 どちらもsortを使用してリストから重複エントリを削除しますが、動作は少し異なります。
以下のすべてのコマンドはプラットフォームに依存しないことに注意してください。
2. 基本的な使用法
colorという名前のファイルの色のリストから始めましょう。
% cat color
Black
green
red
red
yellow
Green
red
重複を削除したい場合は、uniqが機能する場合があります。 uniqのマニュアルページを確認します。
入力内の繰り返し行は、隣接していない場合は検出されないため、最初にファイルを並べ替える必要がある場合があります。
私たちのリストの場合、リストには「赤」の重複した非隣接エントリがあるため、結果は一意のエントリのリストにはなりません。
% uniq color
Black
green
red
yellow
Green
red
これを回避する方法はいくつかあります。 まず、-u引数をuniqとともに使用すると、隣接および非隣接の両方のすべての重複が削除されます。
% uniq -u color
Black
green
yellow
Green
red
または、マニュアルページの提案に従って、 uniq を呼び出す前にリストを並べ替えると、重複がすべて削除されます。
リストの並べ替えは簡単です。
% sort color
Black
Green
green
red
red
red
yellow
これをuniqにパイプすると、次のようになります。
% sort color | uniq
Black
Green
green
red
yellow
ここで、 sort のマニュアルページを確認すると、-uフラグが同じ出力を提供することがわかります。
% sort -u color
Black
Green
green
red
yellow
したがって、一般的に言えば、両方のソート| uniqとsort-uは同じことをします。 しかし、いくつかの違いがあります。
たとえば、 sort には、区切り文字での並べ替えなど、他のオプションがあります。 ただし、 -u を使用するか、 uniq。に配管するかに関係なく、これらを使用できます。
3. 一意のエントリのカウント
ユニークなアイテムのリストを見つけたら、多くの場合、ユニークなアイテムの数も知りたいと思うでしょう。 uniqの-cオプションは、重複した各行のカウントを返します。
% uniq -c color
1 Black
1 green
2 red
1 yellow
1 Green
1 red
一種の便利ですが、隣接していない重複を無視するという問題が再び発生します。 これを回避するには、最初にリストを並べ替えてから、出力をuniqにパイプします。
sort color | uniq -c
1 Black
1 Green
1 green
3 red
1 yellow
これで、隣接関係に関係なく、一意のエントリのリストができました。
さらに一歩進んで、リスト内の一意のアイテムの数が必要だとします。 wcにパイプできます。
% sort color | uniq | wc -l
5
または、uniqの代わりにsort-uを使用します。
% sort -u color | wc -l
5
そして、私たちは私たちのユニークなリストアイテムの数を取得します。
4. 概要
この短い記事では、sort|の使用の違いについて説明しました。 uniqおよびsort-u。