app.log の ERROR 行の数を数える正しいパイプラインは?
正答
- grep ERROR | cat app.log | wc -l
- cat app.log | wc -l | grep ERROR
- cat app.log | grep ERROR | wc -l
- wc -l | grep ERROR | cat app.log
解説
パイプラインは左のコマンドの標準出力を右のコマンドの標準入力に流す。まず cat app.log で中身を出し、grep ERROR で該当行だけに絞り、最後に wc -l で行数を数える。wc -l を先に置くと行数という 1 つの数字が grep に渡されてしまい意味が変わる。なお cat を省いて grep ERROR app.log | wc -l と書く、あるいは grep -c ERROR app.log と 1 コマンドで数えることもできる。
参考: www.gnu.org
この問題を含む Linux・シェル のテストを制限時間つきで解く
Linux・シェルクイズへ