LinuCレベル1 GNUとUnixのコマンド 問27
GNUとUnixのコマンド/フィルタを使ったテキストストリームの処理次のコマンドを実行したときの出力として正しいものはどれか。 echo "linux" | tr 'a-z' 'A-Z'
当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)
- ALINUX
- BLinux
- Clinux
- DA-Z
正解: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' は変換後の文字の範囲を表す指定で、その文字列自体が出力されるわけではありません。