今回は唯一のみの業を表示できるコマンドuniqについて紹介していきます。
テキストを編集している際に、よく重複している行を見かけることがあります。数行であれば気になりませんが1000行など大量になると全部みるのは大変です。
利用例としてログファイルなどエラーメッセージの種類を特定したい際は、重複行を唯一行として表示できればだいぶ作業しやすくなります。
コマンドやオプションを知っていると解析作業に役立てることができるので是非覚えていってください、
この記事でわかる事
uniqコマンドの基本底な使い方がわかる。
uniqコマンドのオプションを活用することによりログファイルなどの多くの文字のなかから唯一の行を表示することができる。
目次
uniqコマンド
ユニークとは「唯一の」という意味で、引数で指定したファイルをその前後の行と比較して、ユニークな行だけを表示します。
試しに下記内容で検証してみます。
ポイント
mitsublog@mitsublog:~$ cat uniqfile1
11111
22222
33333
44444
44444
55555
55555
77777
88888
99999
00000
11111
22222
33333
55555
mitsublog@mitsublog:~$
uniqコマンドを使用すると以下のように一意に表示します。
uniqコマンドによって一意に表示
mitsublog@mitsublog:~$ uniq uniqfile1
11111
22222
33333
44444
55555
77777
88888
99999
00000
11111
22222
33333
55555
mitsublog@mitsublog:~$
このように重複する行の前後の重複行のみを唯一の行として表示します。さらに
オプションを活用することにより重複していない行だけを表示したり、重複した行だけを表示する事ができます。
書式
uniq [オプション] [入力ファイル] [出力ファイル]
オプション
オプション | 説明 |
-u | 重複しない行のみを出力します |
-d | 重複した行のみを出力します |
-c | 行の前に出現回数を出力します |
実行例
uniq:前後している重複行を唯一の行にして表示します
前後している重複行を唯一の行にして表示します。
前後している重複行を唯一の行に
mitsublog@mitsublog:~$ uniq uniqfile1
11111
22222
33333
44444
55555
77777
88888
99999
00000
11111
22222
33333
55555
mitsublog@mitsublog:~$
-u:重複行を一意の行にて表示します
重複行がある場合に利用します。一意の行のみ表示します。例えばログファイルからエラーメッセージの種類を知りたい際に重複行が多いとわかりにくくなります。
mitsublog@mitsublog:~$ uniq -u uniqfile1
11111
22222
33333
mitsublog@mitsublog:~$
-d:重複する行だけを表示します
逆に重複する行だけをを知りたい場合は「-d」オプションを利用します。
mitsublog@mitsublog:~$ uniq -d uniqfile1
44444
55555
mitsublog@mitsublog:~$
-c:行の前に行前後の重複を出現回数として出力します
行の前後で重複する行をカウントして表示します。
mitsublog@mitsublog:~$ uniq -c uniqfile1
1 11111
1 22222
1 33333
2 44444
2 55555
1 77777
1 88888
1 99999
1 00000
1 11111
1 22222
1 33333
1 55555
mitsublog@mitsublog:~$
まとめ
今回は以上となります。まとめに入ります。
まとめ
uniqコマンドにより重複行を一意の行にすることができる。
主にログファイルでメッセージの種類を特定したい場合などに使われる。
以上となります。