uniqコマンドで重複削除 macOS/Linux/Unixシェルコマンド
uniqコマンドは、テキストファイル内の連続する重複行をフィルタリングするために使用されます。重複行は、直前の行と完全に同じである場合にのみ検出されるため、一般的にuniqコマンドはsortコマンドと組み合わせて使用されます。【uniqまとめ】uniqのオプション一覧
オプション | 説明 |
---|---|
-c | 各行が現れた回数を表示します。 |
-d | 重複している行のみを表示します。 |
-u | 重複していない行のみを表示します。 |
-i | 大文字と小文字の違いを無視して比較します。 |
-z | 入力と出力の行終端をNULL文字で扱います。 |
--count | -cオプションと同様に、各行が現れた回数を表示します。 |
--repeated | -dオプションと同様に、重複している行のみを表示します。 |
--unique | -uオプションと同様に、重複していない行のみを表示します。 |
--ignore-case | -iオプションと同様に、大文字と小文字の違いを無視して比較します。 |
--zero-terminated | -zオプションと同様に、入力と出力の行終端をNULL文字で扱います。 |
【uniq初級編】uniqを使ってみよう
uniq処理の前にかならずsortコマンドで順番を整形してください。そうしないと重複削除がうまく機能しません。
重複行の数をカウントする
zsh
sort ファイル名 | uniq -c
重複している行のみを表示する
zsh
sort ファイル名 | uniq -d
重複していない行のみを表示する
zsh
sort ファイル名 | uniq -u
大文字と小文字を無視して重複行をフィルタリングする
zsh
uniqコマンドはテキストの前処理やデータ分析など、さまざまなシナリオで有用です。特に、ログファイルやデータセットから重複を除外したり、特定のパターンがどれだけ頻繁に現れるかを確認したりする際に役立ちます。sort ファイル名 | uniq -i
関連記事
アイデアノート > macOSで使えるシェル