11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】しまさんのLinuxコマンドドリル grep編(解説付き)

11
Posted at

問題①

sample.logから「error」を含む行を探して下さい。

回答 grep "error" sample.log

出力例:
[2025-10-05 10:00] error: failed to connect

解説:grepは指定した文字列を含む行を表示します。部分一致で抽出されます。

問題②

「Error」「ERROR」など大文字小文字を無視して検索して下さい。

回答 grep -i "error" sample.log

解説:-iオプションで大文字・小文字を区別せずに検索できます。

問題③

sample.logにtimeoutを行番号も表示して下さい。

回答 grep -n "timeout" sample.log

出力例:
42:connection timeout detected

解説:-nで行番号付きで表示されます。後で編集や確認がしやすくなります。

問題④

sample.log から「INFO」を含まない行だけを抽出する

回答 grep -v "INFO" sample.log

解説:-vは否定検索。指定した文字列を含まない行を抽出します。

問題⑤

複数のログファイルから、"failed"を一括検索して下さい。

回答

grep "failed" *.log

出力例:
app1.log:[2025-10-05] failed to start app2.log:[2025-10-05] failed to connect

解説:ワイルドカードで複数ファイルを対象にできます。ファイル名も表示されます。

問題⑥

sample.logから日付形式(YYYY-MM-DD)の行を検索して下さい。

回答

grep -E "[0-9]{4}-[0-9]{2}-[0-9]{2}" sample.log

出力例:
2025-10-05 system rebooted

解説:-Eで拡張正規表現を使用。{n}は繰り返し回数を指定します。

問題⑦

sample.logに「ERROR」が何回出現したか数えて下さい。

回答 grep -c "ERROR" sample.log

出力例:
5

解説:-cは一致した行数をカウント。統計的な確認に便利です。

問題⑧

result.txtから行全体が「OK」と一致する行だけ抽出して下さい。

回答

grep -x "OK" result.txt

出力例:
OK

解説:-xは行全体が一致する場合のみ抽出。部分一致を避けたいときに使います。

問題⑨

sample.logから「error」を含む行の前後も表示して下さい。

回答

grep -C 2 "error" sample.log

出力例:
[2025-10-05 09:58] checking connection [2025-10-05 10:00] error: failed to connect [2025-10-05 10:01] retrying...

解説:-Cは前後の行数を指定して表示。-A(後のみ)や-B(前のみ)もあります。

問題⑩

sample.logから"error"に色を付けて表示して下さい。

回答

grep --color=auto "error" sample.log

解説:--color=autoで一致部分に色が付きます。視認性が向上し、デバッグ効率もアップ。

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?