【uniq】Linuxで重複した行を抽出・削除するコマンド

uniqコマンドは、テキストファイルの重複した行を出力・削除するコマンドです。sortコマンドと併用することで、便利に使うことができます。

uniqコマンドの使い方

uniqコマンドの書式は以下の通りです。

uniqコマンドは指定した入力ファイル、または標準入力から重複を取り除きます。出力ファイルを指定した場合は、そのファイルに結果が書き込まれます。出力ファイルを指定しなかった場合は、標準出力に出力されます。

オプション

-c 重複した数を各行の前に出力する
-d 重複した行だけを出力する
-f 行数 指定したフィールドだけ比較をスキップする
-s 文字数 指定した文字数だけ比較をスキップする
-i 大文字と小文字の違いを無視する
-u 重複しない行だけを出力する
-w 文字数 各行で指定した文字数だけ比較を行う

重複した行を削除する

今回は例として members.txt というファイルを使用します。

以下は、重複した行を削除し出力する例です。

引数で指定したファイルの各行をその前後の行と比較し、重複しない行だけを表示します。

もし離れた行の重複も取り除きたい場合は、sortコマンドで並べ替えてからuniqコマンドを使用します。

重複した行数を出力する

重複した行数を表示するコマンドを実行する場合は、「-c」オプションを指定します。

各行の先頭に重複した行数が出力されます。

重複しない行を出力する

重複しない行を表示するコマンドを実行する場合は、「-u」オプションを指定します。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて