
Linuxのuniqコマンド?重複行の削除からカウントまで、サクッとマスターしてデータ整理の達人になろう!
uniqコマンドとは?重複行を削除・カウント
LinuxやmacOSなどのUnix系OSで利用できるuniq
コマンドは、テキストファイル内の連続する重複行を削除したり、重複回数をカウントしたりする際に非常に便利なツールです。ログファイルの整理、データの集計、設定ファイルの最適化など、さまざまな場面で活用できます。この記事では、uniq
コマンドの基本的な使い方から、より高度なオプションまでを解説します。
SEO対策としては、uniq
コマンドの基本的な使い方、オプション、具体的な使用例を網羅的に解説することで、検索エンジンのランキング上位表示を目指します。特に、プログラミング初心者やLinuxコマンド初心者にも理解しやすいように、具体的な例を豊富に盛り込みます。
また、記事全体を通して、キーワードを自然な形で使用し、読者の検索意図に合致するコンテンツを提供することを心がけます。
uniqコマンドの基本的な使い方
uniq
コマンドの基本的な構文は以下の通りです。
uniq [オプション] [入力ファイル] [出力ファイル]
入力ファイルを指定しない場合は、標準入力から読み込みます。出力ファイルを指定しない場合は、標準出力に出力されます。
最も基本的な使い方は、重複行を削除して表示することです。例えば、data.txt
というファイルに以下の内容が記述されているとします。
apple
banana
banana
cherry
cherry
cherry
このファイルに対してuniq data.txt
を実行すると、以下の結果が得られます。
apple
banana
cherry
重複する行が削除され、それぞれの行が1回ずつ表示されます。
uniqコマンドの主なオプション
uniq
コマンドには、さまざまなオプションが用意されています。ここでは、特に使用頻度の高いオプションを紹介します。
-c
オプション:各行の出現回数を表示します。
uniq -c data.txt
上記の例で、data.txt
に対して-c
オプションを使用すると、以下の結果が得られます。
1 apple
2 banana
3 cherry
各行の先頭に、出現回数が表示されます。
-d
オプション:重複している行のみを表示します。
uniq -d data.txt
上記の例で、data.txt
に対して-d
オプションを使用すると、以下の結果が得られます。
banana
cherry
重複している行(ここではbanana
とcherry
)のみが表示されます。
-i
オプション:大文字と小文字を区別せずに比較します。
Apple
apple
上記のような内容のファイルに対して、-i
オプションなしでuniq
を実行すると、Apple
とapple
は異なる行として扱われます。しかし、-i
オプションを使用すると、大文字小文字の違いを無視して比較するため、重複行として扱われます。
uniq -i data.txt
-f n
オプション:最初のn個のフィールドを無視して比較します。フィールドは空白文字で区切られます。
1 apple red
1 apple green
2 banana yellow
上記のような内容のファイルに対して、-f 1
オプションを使用すると、最初のフィールド(ここでは数字)を無視して比較するため、apple red
とapple green
は重複行として扱われます。
uniq -f 1 data.txt
-s n
オプション:最初のn文字を無視して比較します。
apple
apple
上記のような内容のファイルに対して、-s 1
オプションを使用すると、最初の1文字を無視して比較するため、’ apple’と’ apple’は重複行として扱われます。
uniq -s 1 data.txt
uniqコマンドの実践的な使用例
ログファイルからエラーメッセージの出現回数をカウントする例:
cat error.log | grep 'ERROR' | uniq -c | sort -nr
この例では、error.log
ファイルからgrep
コマンドでERROR
を含む行を抽出し、uniq -c
で各エラーメッセージの出現回数をカウントし、sort -nr
で出現回数の多い順にソートしています。
設定ファイルから重複した設定項目を削除する例:
uniq config.txt > config_new.txt
この例では、config.txt
ファイルから重複した設定項目を削除し、結果をconfig_new.txt
ファイルに保存しています。
CSVファイルから特定の列の値の重複を削除する例:
cut -d',' -f2 data.csv | sort | uniq
この例では、data.csv
ファイルから,
区切りで2番目の列を抽出し、sort
コマンドでソートしてからuniq
コマンドで重複を削除しています。
参考リンク
まとめ
uniq
コマンドは、テキストファイル内の重複行を効率的に処理するための強力なツールです。基本的な使い方から、オプションを組み合わせた応用的な使い方までを理解することで、日々の作業効率を大幅に向上させることができます。この記事を参考に、uniq
コマンドを使いこなせるようになってください。