過去問ドリル

LinuCレベル1 GNUとUnixのコマンド 問27

GNUとUnixのコマンド/フィルタを使ったテキストストリームの処理

次のコマンドを実行したときの出力として正しいものはどれか。 echo "linux" | tr 'a-z' 'A-Z'

当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)

正解:A

解説

trは、標準入力から読んだ文字を1文字ずつ置き換えて標準出力へ書き出すフィルタです。第1引数の文字集合の各文字を、第2引数の同じ位置の文字へ変換します。'a-z' と 'A-Z' を指定すると、小文字のaからzがそれぞれ対応する大文字に変換されるため、「linux」は「LINUX」になります。trはファイル名を引数に取らないため、入力はパイプやリダイレクトで渡します。-d を付けると指定した文字の削除、-s を付けると連続する同じ文字を1つにまとめる動作になります。

選択肢ごとの解説

  • A正しい。小文字a〜zの各文字が対応する大文字に変換されるため、すべて大文字の「LINUX」になります。
  • B誤り。trは先頭の文字だけでなく、入力中の該当する文字をすべて変換します。
  • C誤り。「linux」の各文字はすべて a-z の範囲に含まれるため、変換されずにそのまま出力されることはありません。
  • D誤り。'A-Z' は変換後の文字の範囲を表す指定で、その文字列自体が出力されるわけではありません。
LinuCレベル1の問題を演習モードで解く