投稿履歴
- 【A5M2】テーブルにNULL値を入力する方法
- 【Linux】標準出力と標準エラー出力の違い
- DRAMとSRAMの違い・覚え方を徹底解説!
- 【サクラエディタ】スペースとタブを置換する方法
- 【Excel】VBAの起動方法(開発タブが表示されない場合)
- 今日から使える!Gitコミットメッセージの書き方と型
- 【Excel】区切り指定でCSVを貼り付ける方法
- 【Linux】テキストファイルの重複行を削除する方法
- 【サクラエディタ】重複行を削除する方法
- Excelのプルダウンリストをショートカットで操作・管理する
- 【サクラエディタ】タブ表示の設定と使いこなしガイド
- 【サクラエディタ】矩形選択(ボックス選択)を完全ガイド
- 【サクラエディタ】Grep機能の使い方を初心者にもわかりやすく解説!
- TCPとUDPの違いと覚え方:信頼性 vs スピードを徹底解説
- Pythonの仮想環境を終了(deactivate)する方法
- 【Linux】zipファイルの圧縮方法(zipコマンド)
- LinuxでZIPファイルを解凍する方法【unzipコマンド】
- 暗号化アルゴリズムの種類:代表的なアルゴリズムを紹介!
- 【Oracle】SELECT結果を同一テーブルへINSERTする
- 【Oracle】ROWNUMとROW_NUMBERの違いと使い分け
Linuxユーザにお勧めの本
Linuxでは、ログファイルや大量データの整形作業を行う際に、「重複行を削除したい」というニーズが多く発生します。特に、アクセスログ・CSVデータ・設定ファイルなどで重複行が混在していると、正確な分析や集計ができなくなります。
本記事では、sort、uniqなどの定番コマンドを使って、重複行を削除するための方法を丁寧に解説します。それぞれのコマンドの特徴や使いどころ、応用例もあわせて紹介するので、業務でデータを扱う方にも役立つ内容です。
記事のポイント
- Linuxで重複行を削除するには、
sortとuniqの組み合わせが基本。uniqは隣接する重複のみ処理するため、事前のソートが重要。
uniq -c,-d,-uで重複の分析や抽出が可能。
Linuxで重複行を削除する(sort+uniqコマンド)
Linuxで重複行を削除する際によく使われるのが、sortとuniqコマンドです。これらはどのディストリビューションにも標準で搭載されており、シェルスクリプトからも簡単に利用できます。これらを理解することで、ExcelやPythonスクリプトを使わなくても、端末上で簡単にデータクレンジングを行えるようになります。
sort:ファイルをソート(並び替え)するコマンド。文字コード順や数値順など、さまざまな基準で並び替え可能。uniq:連続して現れる重複行を削除、または分析するためのコマンド。
この2つを組み合わせることで、シンプルながら非常に強力な重複行削除が実現できます。例えば、ログファイルの中で同じリクエストURLを1回だけ残したい場合などに便利です。
sortとuniqを組み合わせた基本的な削除方法
最も基本的かつ確実な方法が、以下のようにsortとuniqを組み合わせる方法です。
sort ファイル名.txt | uniq > 出力ファイル名.txtこのコマンドは、ファイルの内容をソートしたうえで、uniqで隣接する重複行を削除します。uniq単体では隣接していない重複を認識できないため、事前のソートが必要です。
例として、以下のようなファイルを考えます。
applebananaappleorangebananaAppleこの場合、
sort sample.txt | uniq > result.txtを実行すると、result.txtには以下の結果が出力されます。
Appleapplebananaorangeファイル内の重複行を簡単に取り除けることがわかります。また、sort -uを使えば、uniqを省略して同じ結果を得ることもできます。
sort -u sample.txt > result.txtuniqコマンドの詳細と重複行の分析
uniqは単なる重複削除ツールではなく、重複の「可視化」や「分析」にも利用できます。以下に代表的なオプションを紹介します。
-
行の出現回数を表示する:
実行コマンド例 sort sample.txt | uniq -c出力例:
1 Apple2 apple2 banana1 orange行の左側に出現回数が表示されるため、どのデータが重複しているかを一目で把握できます。
-
重複している行のみ出力:
実行コマンド例 sort sample.txt | uniq -d出力例:
applebanana同じ内容が2回以上現れる行だけを抽出します。
-
一度しか登場しない行のみ出力:
実行コマンド例 sort sample.txt | uniq -u出力例:
Appleorange重複していないユニークなデータだけを抽出する際に有用です。
-
大文字・小文字を区別しない比較:
実行コマンド sort -f sample.txt | uniq -i出力例:
Applebananaorange文字列の大小区別を無視して処理するため、
Appleとappleを同一視して扱います。
こうしたオプションを組み合わせると、単なる削除ではなく「重複データの検出」や「集計」も効率的に行えます。
Linux重複行削除まとめ
Linuxで重複行を削除する際は、用途やデータの性質に応じて以下のように使い分けましょう。
- 重複削除:
sort ファイル | uniqまたはsort -u - 分析・可視化用途:
uniq -c,uniq -d,uniq -u
sort、uniqはいずれも軽量かつ高速に動作するテキスト処理コマンドです。ログ解析やデータ前処理など、日常的な業務におけるデータ整理を効率化する上で欠かせないツールといえるでしょう。
Linuxユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!