uniq -uオプションの使い方を完全ガイド!初心者でもわかるLinuxで一度しか出現しない行の抽出
生徒
「同じ文字がたくさん並んだデータから、1回しか出てこないものだけ取り出せますか?」
先生
「Linuxではuniqコマンドの-uオプションを使うと、それが簡単にできます。」
生徒
「パソコンを触ったことがなくても使えますか?」
先生
「大丈夫です。黒い画面に文字を入力するだけなので、一つずつ覚えていきましょう。」
1. uniqコマンドとは何か
uniqコマンドは、Linuxでテキストデータを整理するときによく使われる基本コマンドです。主な役割は、同じ行が連続して並んでいる部分を見つけて処理することです。大量の文字データを人の目で確認するのは大変ですが、uniqを使えば自動で整理できます。
たとえば、名簿やログファイルなど、同じ内容が何度も出てくるデータをスッキリさせたいときに役立ちます。
2. uniq -uオプションの意味
-uオプションは、「一度しか出現しない行だけを表示する」という意味です。たとえるなら、クラスの出席表で、名前が一度しか書かれていない人だけを探すようなイメージです。重複していない、つまり完全にユニークな行だけを表示します。
3. uniqを使う前に知っておくこと
uniqコマンドにはとても大切な特徴があります。それは「同じ行が連続していないと判断できない」という点です。そのため、多くの場合はsortコマンドと一緒に使います。sortは行を並び替える命令で、データを整列させる役割があります。
これは、バラバラに散らばったカードを、同じ絵柄ごとに並べてから数えるようなものです。
4. uniq -uの基本的な使い方
まずは、簡単なテキストデータを例に見てみましょう。以下は、同じ単語がいくつか含まれているデータです。
sort sample.txt | uniq -u
apple
orange
この例では、sample.txtの中身をsortで並び替えたあと、uniq -uで一度しか出てこない行だけを表示しています。
5. ログファイルでの活用例
uniq -uは、ログファイルの確認でもよく使われます。ログとは、システムやアプリの動きを記録したメモのようなものです。大量の記録の中から、1回しか発生していないエラーを探すのに便利です。
sort error.log | uniq -u
ERROR: disk full
このようにすると、頻繁に出ているエラーではなく、珍しいエラーだけを見つけやすくなります。
6. uniq -uと他のオプションの違い
uniqには他にも便利なオプションがあります。たとえば-dは「重複している行だけ表示」、-cは「出現回数を表示」です。-uはその反対で、重複していない行に注目します。目的によって使い分けることが大切です。
7. uniq -uが役立つ場面
uniq -uは、名簿の確認、アンケート結果の整理、アクセスログの分析など、さまざまな場面で使えます。「一度しか起きていないこと」を見つけるのが得意なので、問題の原因調査やデータチェックにも向いています。
8. 初心者がつまずきやすいポイント
よくある間違いは、sortを使わずにuniq -uを実行してしまうことです。その場合、正しい結果が出ません。uniqはあくまで「隣り合った行」を比較するコマンドだという点を覚えておくと安心です。
uniq -u sample.txt
(期待した結果にならない場合がある)