LPIC問題:45-48
問題45:次のファイル sample.txt
があります。
banana
apple
grape
orange
このファイルの内容をアルファベット順に並び替えて表示するためのコマンドはどれですか?
A) cat sample.txt | grep -i sort
B) sort sample.txt
C) awk '{print $1}' sample.txt | sort
D) sort -r sample.txt
解答解説を開く
正解) B
【解説】
A) cat sample.txt | grep -i sort: このコマンドはファイルの内容を表示した後、"sort" という文字列を含む行を検索しますが、今回は並び替えが必要ですので誤りです。
B) sort sample.txt: このコマンドは sample.txt の内容をアルファベット順に並び替えて表示します。正解です。
C) awk '{print $1}' sample.txt | sort: このコマンドは各行の1列目を抽出し、それを並び替えますが、今回のファイルには1列目しかないため、冗長です。
D) sort -r sample.txt: このコマンドは sample.txt の内容を逆順(降順)に並び替えます。今回はアルファベット順(昇順)が求められているので誤りです。
問題46:次のコマンドは何をしますか?
echo "file1 file2 file3" | xargs rm
A) "file1", "file2", "file3" の内容を表示する。
B) "file1", "file2", "file3" を削除する。
C) "file1", "file2", "file3" に対してrmコマンドを実行する。
D) エラーが表示される。
解答解説を開く
正解) B
【解説】
A) "file1", "file2", "file3" の内容を表示する。: xargs rm はファイルを削除するコマンドであり、内容を表示するものではありません。
B) "file1", "file2", "file3" を削除する。: echo で出力されたファイル名を xargs で rm コマンドに渡し、指定されたファイルを削除します。正解です。
C) "file1", "file2", "file3" に対してrmコマンドを実行する。: この説明は一見正しそうに見えますが、 B) の説明と重複するため不正解とします。
D) エラーが表示される。: このコマンドは正常に動作し、エラーは表示されません。
問題47:次のコマンドシーケンスは何をしますか?
cat /etc/passwd | grep '/bin/bash' | wc -l
A) /etc/passwd
ファイルに含まれるすべての行数を表示する。
B) /etc/passwd
ファイルに含まれる "/bin/bash" を含む行を数える。
C) /etc/passwd
ファイルから "/bin/bash" を含む行を表示する。
D) /etc/passwd
ファイルの内容を "/bin/bash" とともに表示する。
解答解説を開く
正解) B)
【解説】
A) /etc/passwd ファイルに含まれるすべての行数を表示する。: wc -l は行数を数えますが、 grep '/bin/bash' でフィルタリングされているためすべての行数を数えるわけではありません。
B) /etc/passwd ファイルに含まれる "/bin/bash" を含む行を数える。: grep '/bin/bash' でフィルタリングし、 wc -l でその行数を数えます。正解です。
C) /etc/passwd ファイルから "/bin/bash" を含む行を表示する。: grep '/bin/bash' までは正しいですが、その後 wc -l で行数を数えるので、表示ではなく数えます。
D) /etc/passwd ファイルの内容を "/bin/bash" とともに表示する。 /bin/bash を含む行を表示するだけではなく、行数を数えるため、正しくありません。
問題48:次のシェルスクリプトの出力は何ですか?
#!/bin/bash
cat << EOF
Hello, World!
This is a test.
EOF
A) スクリプトはエラーを出力する。
B) Hello, World!
と表示する。
C) This is a test.
と表示する。
D) Hello, World!
と This is a test.
を表示する。
解答解説を開く
正解) D
【解説】
A) スクリプトはエラーを出力する。: ヒアドキュメントは正しく閉じられており、エラーは発生しません。
B) Hello, World! と表示する。: Hello, World! だけでなく、次の行も含めて表示されます。
C) This is a test. と表示する。: This is a test. だけでなく、前の行も含めて表示されます。
D) Hello, World! と This is a test. を表示する。: ヒアドキュメント内の全ての行が表示されます。正解です。