はじめに
3 つのアプリケーションログに対して、同じ簡単な確認を行う必要があります。ERROR で始まる行を数え、ファイルごとに 1 行ずつ結果を出力します。短いループですべての .log ファイルを処理できるため、コマンドを手動で繰り返す必要はありません。
直前のガイド付き実験では、この種のループを段階的に作成しました。今回のチャレンジでは、余分なコピー処理やレポート用ディレクトリ、エラー処理を追加せず、再利用できる小さなスクリプトを 1 つ作成します。
エラー集計スクリプトを作成する
現在の状況
/home/labex/project/log-automation/logs には、api.log、healthy.log、worker.log が含まれています。
作業範囲
/home/labex/project/log-automation/process-logs.shを作成します。- 最初の引数は、ログが格納されているディレクトリとします。
.logで終わるファイルを処理します。- 各ファイルについて、
ERRORで始まる行を数えます。 filename errors=count形式で 1 行ずつ出力します。
目標
./process-logs.sh logs として実行したときに、正しいエラー集計を出力する実行可能なスクリプトを 1 つ完成させます。
合格条件
スクリプトの先頭が
#!/bin/bashで始まり、実行可能になっていること。./process-logs.sh logsの実行結果が次のようになること。api.log errors=1 healthy.log errors=0 worker.log errors=2
ヒント
どのガイド付きサンプルが最も近いでしょうか?
"$log_dir"/*.log を順番に処理し、^ERROR で始まる行を数え、ファイル名と件数を出力していたループを確認してください。
まとめ
ログの件数を数えるおなじみのループを、短く再利用可能な Bash スクリプトに仕上げました。



