ログから「connection refused」を探したい。指摘として正しいものは?
$ grep connection refused app.log正答
- grep は -r を付けないとファイルの中身を読めないので、-r を付ける
- ファイル名 app.log はパターンより前に書かないと検索されない
- ログは大文字と小文字が混ざるので、-i を付けないと 1 行も見つからない
- パターンを引用符で囲む。今は refused がファイル名として扱われる
解説
シェルは空白で引数を区切るので、grep には「パターン connection」「ファイル refused」「ファイル app.log」が渡る。refused というファイルが無いというエラーが出つつ、app.log からは connection を含む行がすべて出るため、結果が正しく見えてしまう。grep 'connection refused' app.log と書く。-r はディレクトリを再帰的に探すときのオプションで、1 番目は誤り。
参考: www.gnu.org
この問題を含む 指摘・レビュー のテストを制限時間つきで解く
指摘・レビュークイズへ