uniqコマンド
CoddyのTerminalジャーニー「基礎」セクションの一部 — レッスン 33/82。
uniq コマンドは、ファイルから 連続した重複行 をフィルタリングし、一意の行のみを表示します。
duplicates.txt は以下の内容です:
apple
banana
apple
cherry
banana
banana
重要: uniq は 隣り合った 重複のみを削除します。これが sort を先に実行してからほぼ常に一緒に使用される理由です:
sort duplicates.txt | uniq| 記号は パイプ と呼ばれます — あるコマンドの出力を別のコマンドの入力として送ります。これはターミナルで頻繁に使用する強力なパターンです。
有用なフラグ:
-c — 各行の先頭にその行が現れた回数の カウント を付加します:
sort duplicates.txt | uniq -c
2 apple
3 banana
1 cherry-d — 重複した行のみを表示:
sort duplicates.txt | uniq -d-u — ちょうど1回出現する行のみを表示:
sort duplicates.txt | uniq -uチャレンジ
初心者sort と uniq を組み合わせて、duplicates.txt からユニークな行のみを重複なしで表示します。
ヒント: 重複行を隣接させるために、まずファイルを
sortし、次に結果を|でパイプしてuniqに渡して重複を除去します。
チートシート
uniq コマンドは、ファイルから連続する重複行をフィルタリングします。隣接する重複のみを削除するため、通常は最初に sort と一緒に使用します:
sort duplicates.txt | uniq| 記号は パイプ です — 1つのコマンドの出力を別のコマンドの入力として送信します。
便利なフラグ:
-c — 各行の先頭に出現回数を付加します:
sort duplicates.txt | uniq -c-d — 重複行のみを表示します:
sort duplicates.txt | uniq -d-u — ちょうど 1 回だけ出現する行のみを表示します:
sort duplicates.txt | uniq -u自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。