【Linux】
ファイルの重複行を削除する・重複行のみ抽出する方法

sortコマンド・uniqコマンドの使い方

投稿日 2022/06/11 更新日 2022/06/11


こんにちは。当サイトの管理者「元木皇天」です。

今回はファイルの重複行を削除する方法と、重複行のみ抽出する方法について解説いたします。

環境
OS:Kali Linux Ver5.15

重複行を削除する方法

ファイルの中の重複行を削除するには、以下の2つのコマンドを使用します。

sortコマンド
uniqコマンド

以下は「sample.txt」ファイルのから重複行を削除した「uniq_sample.txt」ファイルを作成する例です。

sort sample.txt | uniq sample.txt > uniq_sample.txt

ポイントとしては、sortコマンドを実施した後に、uniqコマンドで重複を削除するという点です。

sortコマンドを実行した後でないと、想定通りの重複削除結果が得られないので注意が必要です。

以下は最初の100行のみを表示させる例です。

重複行のみ抽出する方法

先ほどとは反対に、ファイルの重複行のみを抽出したい場合もあると思います。

そのような場合は「-d」オプションを使用します。

以下は「sample.txt」ファイルのから重複行を抽出し「duplicate.txt」ファイルを作成する例です。

sort sample.txt | uniq -d sample.txt > duplicate.txt

まとめ

ファイルの重複行を削除・抽出するには
sortコマンドと
uniqコマンド
を使用します。