Uniq

uniqコマンドについて



`uniq`コマンドは、UNIXおよびUNIX系のオペレーティングシステムで利用できる、テキスト処理ユーティリティです。このコマンドは、テキストファイルを入力として受け取り、その中で連続する重複行を削除し、結果を標準出力に出力します。`uniq`は、特にテキストデータを扱う際に、重複した情報を整理し、よりクリーンなデータセットを作成するのに役立ちます。

`uniq`コマンドは、単独で使用することもできますが、他のコマンドとの連携、特に`sort`コマンドの出力結果をパイプで受け取る形で使用されることが一般的です。これにより、まず`sort`でテキスト行を並べ替え、その後に`uniq`で重複行を削除するという、効率的なテキスト処理パイプラインを構築できます。

主なオプション



`uniq`コマンドには、いくつかの便利なオプションが用意されており、これらのオプションを使用することで、より柔軟なテキスト処理が可能になります。

`-u`オプション: このオプションを使用すると、入力ファイル内で重複していない、つまり一度しか出現しない行のみが出力されます。これは、データセット内でユニークなエントリのみを抽出したい場合に便利です。

`-d`オプション: このオプションは、逆に重複している行のみを出力します。これにより、データセット内で繰り返されている行を特定するのに役立ちます。

`-c`オプション: `-c`オプションを使用すると、各行の先頭に出現回数が付加された形式で出力されます。このオプションを指定した場合、`-u`および`-d`オプションは無視されます。出現回数を知ることで、データの頻度分析に役立てることができます。

`-i`オプション: このオプションは、大文字と小文字を区別せずに行を比較します。これにより、大文字と小文字の違いのみで重複とみなされない行を、重複として扱うことができます(GNU拡張)。

`-s n`オプション: このオプションを使用すると、各行の先頭から指定した`n`文字を無視して比較が行われます。このオプションは、特定の文字や文字列をスキップして重複行を検出する際に便利です。

`-w n`オプション: このオプションは、各行の先頭から`n`文字だけを比較の対象とし、それ以降の文字を無視します。これにより、行の特定の部分だけが一致する場合に重複とみなすことができます。

使用例



以下に、`uniq`コマンドがどのように使用されるかの例をいくつか示します。

1. 重複行の削除: テキストファイルから重複行を削除する基本的な使用例です。

bash
uniq input.txt > output.txt


この例では、`input.txt`ファイルから重複行を削除し、結果を`output.txt`ファイルに保存します。

2. 出現頻度順にソート: あるファイルの異なる内容の行を、各行の出現頻度順にソートして一覧する例です。

bash
sort file | uniq -c | sort -n


まず`sort`でテキスト行をソートし、次に`uniq -c`で各行の出現回数をカウントし、最後に`sort -n`で出現回数の少ない順にソートします。

3. シェルスクリプトでの利用: `uniq`は、シェルスクリプト内でパイプの一部として頻繁に使用され、テキストデータを効率的に処理するために役立ちます。

まとめ



`uniq`コマンドは、テキスト処理における強力なツールであり、特に重複行の削除や出現回数のカウントにおいて、その真価を発揮します。多様なオプションを組み合わせることで、さまざまなテキスト処理のニーズに対応できます。`sort`などの他のコマンドと組み合わせることで、より複雑なデータ処理パイプラインを構築し、効率的なデータ分析を可能にします。

外部リンク



uniq(1) JM Project
uniq(1) man page(SunOS リファレンスマニュアル)
* uniq(1) man page(HP-UX リファレンス)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。