LinuCレベル1 GNUとUnixのコマンド 問42
GNUとUnixのコマンド/フィルタを使ったテキストストリームの処理Windowsで作成されたテキストファイル data.txt の行末に、改行(LF)の前にCR(復帰)が含まれているかを確かめたい。制御文字を \r や \n のような目に見える形で1バイトずつ表示するコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル1の出題範囲「GNUとUnixのコマンド」に対応。実際の試験問題ではありません)
- Aod -c data.txt
- Bnl data.txt
- Cexpand data.txt
- Dfmt data.txt
正解:A
解説
od はファイルの内容を8進数・16進数・文字などの形式でダンプするコマンドです。-c オプションを付けると各バイトを文字として表示し、印字できない制御文字はCRなら \r、LFなら \n、タブなら \t のようにエスケープ表記で示します。Windowsで作成したテキストでは行末が \r \n と表示されるので、CRの有無をひと目で確認できます。左端の数値はファイル先頭からのオフセット(既定では8進数)です。
選択肢ごとの解説
- A正しい。od -c は各バイトを文字として表示し、CRを \r、LFを \n のように見える形で示します。
- B誤り。nl はファイルの各行に行番号を付けて出力するコマンドで、行末のCRのような制御文字を見える形にはしません。
- C誤り。expand はタブを適切な数の空白に変換して出力するコマンドで、CRを表示する機能はありません。
- D誤り。fmt は段落の行を指定した幅に収まるよう整形し直すコマンドで、制御文字を可視化するものではありません。