uniq#
uniq は、テキストファイルやテキストストリームの重複する行をフィルタリングするための UNIX および UNIX ライクなオペレーティングシステムのコマンドラインツールです。
具体的には、連続する重複行を単一の行にまとめます。
以下は uniq の基本的な使い方とオプションの一部です:
-
基本的な使用方法:
これにより、file.txtの連続する重複行が除去されます。 -
重複した行の数を表示:
このコマンドは、各行の出現回数とともにその行を出力します。 -
重複していない行のみを表示:
このコマンドは、ファイル内で一度しか出現しない行のみを出力します。 -
すべての重複する行を表示:
このコマンドは、ファイル内で複数回出現する行を一度だけ出力します。 -
特定のフィールドや文字での比較:
または-fオプションは、先頭から指定した数のフィールドを無視して比較します。-sオプションは、先頭から指定した数の文字を無視して比較します。
uniq は、sort コマンドと組み合わせて使用されることがよくあります。sort でデータをソートした後、uniq で重複を削除するという手順です。例:
これは、ファイルの内容をソートし、その後に重複する行を削除します。
以上が uniq の基本的な概要と使い方です。
オプション#
もちろん、uniq コマンドの主なオプションについて詳しく説明します:
-
-cまたは--count: 連続する重複行の出現回数とともに、その行を出力します。 -
-dまたは--repeated: ファイル内で複数回出現する行を一度だけ出力します。 -
-D: すべての重複する行を出力します。 -
-f Nまたは--skip-fields=N: 先頭からN個のフィールドを無視して比較します。フィールドは空白文字(スペースやタブ)で区切られます。 -
-iまたは--ignore-case: 大文字と小文字の違いを無視して比較します。 -
-s Nまたは--skip-chars=N: 先頭からN文字を無視して比較します。 -
-uまたは--unique: 重複していない行のみを出力します。 -
-w Nまたは--check-chars=N: 各行の先頭からN文字のみを比較に使用します。これを超える部分は無視されます。 -
-zまたは--zero-terminated: 行の終わりを示すために改行文字の代わりに NULL 文字を使用します。これは、特定のシナリオでバイナリデータを扱う場合や、ファイル名に改行が含まれる場合などに役立ちます。
これらのオプションを組み合わせることで、さまざまな条件での重複のチェックやフィルタリングが可能になります。
オプション(使用例)#
uniq コマンドのオプションを使った具体的な使用例をいくつか紹介します。
-
重複行の出現回数とともに表示:
出力: -
大文字小文字を無視して重複を削除:
出力: -
最初のフィールドを無視して重複をチェック: 以下の例では、最初の数字を無視して重複をチェックします。
出力: -
最初の2文字を無視して重複をチェック:
出力: -
各行の最初の3文字だけで重複をチェック:
出力: -
重複していない行のみを表示:
出力:
これらの例を参考に、uniq コマンドのオプションを組み合わせてさまざまな条件での重複チェックやフィルタリングを行うことができます。