コマンド | 説明 |
---|---|
uniq | ファイル内の重複行の報告または、フィルタ出力 |
オプション | 説明 |
---|---|
-f N | 比較する時に、各入力行の先頭から N 個のフィールドを無視します。最初のフィールドを 1 として数えます |
-u | 重複していない行を抽出する |
-d | 重複している行のみ抽出する |
-c | 行が入力中に続けて出現した回数を表示し、空白一つあけてその行の内容を表示します |
[重要] |
---|
uniq を実行する前に必ず sort を実行しておきます。でないと正しい結果を得られません |
実行例) % some command | sort | uniq … |
1)以下のような「hoge.txt」があるとして、uniq コマンドをいろいろ試してみます。
% less hoge.txt aaa aaa bbb ccc bbb aaa
% sort hoge.txt | uniq aaa bbb ccc
% sort hoge.txt | uniq -u ccc
% sort hoge.txt | uniq -d aaa bbb
% sort hoge.txt | uniq -c 3 aaa 2 bbb 1 ccc
2)次に以下のような「hoge2.txt」があるとして、uniq コマンドをいろいろ試してみます。
% less hoge2.txt 0 aaa 1 aaa 2 bbb 3 ccc 4 bbb 5 aaa
% sort -k2,2 hoge2.txt | uniq -f1 0 aaa 2 bbb 3 ccc
% sort -k2,2 hoge2.txt | uniq -f1 -u 3 ccc
% sort -k2,2 hoge2.txt | uniq -f1 -d 0 aaa 2 bbb
% sort -k2,2 hoge2.txt | uniq -f1 -c 3 0 aaa 2 2 bbb 1 3 ccc
※. 「sort -k2,2」については Unix::コマンド/sort を参照。