LinuCレベル1 GNUとUnixのコマンド 問6
GNUとUnixのコマンド/フィルタを使ったテキストストリームの処理uniqコマンドの説明として誤っているものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)
- A連続して重複する行を1行にまとめる
- B入力全体をソートしてから重複を除去する
- Cuniqを使う前に、通常はsortで同じ行を隣接させておく
- D-cオプションを付けると、各行の出現回数を行頭に表示する
正解:B
解説
uniqコマンドは、入力中で隣接する(連続している)同じ内容の行だけをまとめて1行にします。ソートは行いません。そのため、ファイル全体から重複行を除去したい場合は、あらかじめsortで同じ内容の行を隣接させてからuniqに渡すのが一般的な使い方です。-cオプションを付けると、各行の直前に出現回数が付加されます。
選択肢ごとの解説
- A誤り(正しい記述)。uniqは連続して重複する行を1行にまとめます。
- B正しい(誤っている記述)。uniq自体はソート機能を持ちません。ソートしていない入力では、離れた位置にある同じ内容の行はまとめられません。
- C誤り(正しい記述)。uniqは隣接する重複しか扱わないため、通常はsortと組み合わせて使います。
- D誤り(正しい記述)。-cオプションは各行の出現回数を行頭に表示します。