指摘・レビュー4 択難易度 標準

ログから「connection refused」を探したい。指摘として正しいものは?

$ grep connection refused app.log

正答

  1. grep は -r を付けないとファイルの中身を読めないので、-r を付ける
  2. ファイル名 app.log はパターンより前に書かないと検索されない
  3. ログは大文字と小文字が混ざるので、-i を付けないと 1 行も見つからない
  4. パターンを引用符で囲む。今は refused がファイル名として扱われる

解説

シェルは空白で引数を区切るので、grep には「パターン connection」「ファイル refused」「ファイル app.log」が渡る。refused というファイルが無いというエラーが出つつ、app.log からは connection を含む行がすべて出るため、結果が正しく見えてしまう。grep 'connection refused' app.log と書く。-r はディレクトリを再帰的に探すときのオプションで、1 番目は誤り。

参考: www.gnu.org

bashgrepquote

この問題を含む 指摘・レビュー のテストを制限時間つきで解く

指摘・レビュークイズへ