ファイル内の重複した行を削除する「uniqコマンド」

uniqコマンドで重複した行を削除・表示する

Linuxのuniqコマンドを利用すると、重複した行を削除したり、重複している行のみ表示できます。
uniq コマンドではオプションなしでは、重複している行を削除できますが「ソート」しないと重複行を削除できません。

下記のようにフルーツ名を入力したファイルがあります

uniqコマンドで使ってみますが、ソートしてないので重複行が削除されなません

「sort 」コマンドを通してから、「uniq」コマンドを実行してみると、きちんと重複行が削除され表示されます

ファイルをソートする

下記のように、sort [ ファイル名 ]でソートしてからパイプで繋いで「uniq」に繋げればソートされ重複行が削除されます

書式:sort  [ ファイル名 ] | uniq

また、下記のように sort [ファイル名]を実行してからその結果をファイルに書き出してソート済みのファイルとしてもソートできます

重複行のみ出力する

uniq -d [ファイル名] と「-d」のオプションを使用すると、重複している行のみ出力できます

重複していない行のみ出力する

uniq -u [ファイル名] と「-u」のオプションを使用すると、重複していない行のみ出力できます

大文字・小文字を無視して重複行を削除する

大文字・小文字を区別しないで、重複行が削除する場合は「-i」のオプションを利用します。
但しこの場合もソート時に大文字・小文字を区別しないでソートする必要があります。その場合は、sort -f [ファイル名] と「-f」のオプションを使用します

 

 

スポンサーリンク