概要
`uniq` は主に `sort` コマンドとパイプ(|)で接続して使用され、ソートされたデータから重複した行を効率的に処理します。`-c` オプションは、重複行の数を簡単に把握できるようにします。
主な特徴
- 連続する重複行の処理
- 重複行のカウント (-c)
- 大文字・小文字を区別しないオプション (-i)
- 特定のフィールドまたは文字を無視した比較
主なオプション
機能
比較方法
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`uniq` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
ファイル内の単語頻度を計算
sort words.txt | uniq -c
`words.txt` ファイルの各単語(行)が何回出現するかを数えて出力します。`uniq` は連続する重複のみを処理するため、まず `sort` を使用してすべての重複を隣接させます。
ログファイルで最も多く出現する行を検索
cat log.txt | sort | uniq -c | sort -nr
ログファイルで重複行の数を数え、その結果をカウント(数値)を基準に降順でソートし、最も多く出現する行を上から表示します。
大文字・小文字を区別せずに重複行の数をカウント
echo -e "Apple\napple\nBanana\napple" | sort | uniq -ci
標準入力から 'Apple' と 'apple' を同じものとみなして、重複数を数えて出力します。
特定のフィールドを無視して重複数をカウント
sort -k2 data.txt | uniq -f 1 -c
ファイルの最初のフィールドを無視し、2番目のフィールドから比較して重複行の数を数えて出力します。(例: `data.txt` の内容が `ID1 apple`, `ID2 apple` の場合、'apple' が 2 回としてカウントされます)
ヒントと注意点
`uniq` コマンドは、デフォルトでは「連続して」重複する行のみを処理します。したがって、ファイル全体で重複を削除したり数を数えたりするには、まず `sort` コマンドを使用して行をソートする必要があります。
活用ヒント
- sort との併用: `uniq` は連続する重複のみを処理するため、ファイル全体の重複を処理するには `sort` で先にソートする必要があります。例: `sort file.txt | uniq -c`
- 最も多く出現する項目の検索: `uniq -c` の結果に `sort -nr` をパイプすることで、最も多く出現する項目を降順でソートできます。例: `sort file.txt | uniq -c | sort -nr`
- パフォーマンスの考慮: 非常に大きなファイルの場合、`sort` と `uniq` のメモリ使用量を考慮する必要があります。必要に応じて `sort` の `-T` オプションで一時ディレクトリを指定できます。