カテゴリ: Linuxコマンド集 更新日: 2026/03/25

grep -Bオプション|一致行の前の行も表示する使い方を初心者向けにわかりやすく解説!

grep -Bオプション|一致行の前の行も表示する
grep -Bオプション|一致行の前の行も表示する

先生と生徒の会話形式で理解しよう

生徒

「Linuxのgrepコマンドで検索したい行の前に、どんな内容が書かれていたかも確認したいんですが、できますか?」

先生

「もちろんできますよ!-Bオプションを使えば、一致した行の前の行も一緒に表示できます。」

生徒

「エラーの直前のログとかも見たいときに便利そうですね!」

先生

「そうですね。それでは、grep -Bオプションの基本から見ていきましょう。」

1. grepコマンドとは?

1. grepコマンドとは?
1. grepコマンドとは?

grep(グレップ)コマンドは、Linuxでテキストファイルから特定のキーワードを含む行を探すための基本的なコマンドです。

たとえば、「error」という文字を含む行を表示するには、次のように実行します:


grep error logfile.txt

ただし、この方法では「error」という単語を含む行しか表示されません。前後の文脈も一緒に確認したい場合は、-A-Bオプションを使います。

2. -Bオプションとは?一致行の前を表示する方法

2. -Bオプションとは?一致行の前を表示する方法
2. -Bオプションとは?一致行の前を表示する方法

-BBefore(前)の略で、検索に一致した行の前にある指定行数分も表示することができるオプションです。

使い方はとても簡単です:


grep -B 行数 検索文字列 ファイル名

たとえば、「ERROR」が書かれた行の直前2行も一緒に表示したい場合は、次のようにします:


grep -B 2 ERROR logfile.txt

3. grep -Bオプションの実例で学ぶ

3. grep -Bオプションの実例で学ぶ
3. grep -Bオプションの実例で学ぶ

次のようなlogfile.txtがあったとします:


cat logfile.txt
INFO: 起動準備完了
INFO: データベース接続中
INFO: 接続成功
ERROR: 認証サーバーエラー
INFO: リトライ開始
INFO: 完了

この中から「ERROR」が含まれる行と、その前の2行も見たい場合は、次のように実行します:


grep -B 2 ERROR logfile.txt
INFO: データベース接続中
INFO: 接続成功
ERROR: 認証サーバーエラー

このように、直前の流れを追って状況を把握できるので、エラーの原因を調べるときに非常に役立ちます。

4. 一致が複数あった場合の挙動と「--」の意味

4. 一致が複数あった場合の挙動と「--」の意味
4. 一致が複数あった場合の挙動と「--」の意味

-Bを使っていて、検索対象の文字列がファイル内に複数ある場合、それぞれの一致ブロックの間に--という区切りが表示されます。


grep -B 1 ERROR logfile.txt
INFO: 接続成功
ERROR: 認証サーバーエラー
--
INFO: リトライ開始
ERROR: 認証失敗

この「--」があることで、どこからどこまでが1セットの結果かを簡単に見分けることができます。

5. -Bと-Aや-Cの違いを知っておこう

5. -Bと-Aや-Cの違いを知っておこう
5. -Bと-Aや-Cの違いを知っておこう

grepコマンドには、似たようなオプションとして-A-Cがあります。

  • -A 数字:一致行の後ろの行も表示(After)
  • -B 数字:一致行のの行も表示(Before)
  • -C 数字:一致行の前後両方を表示(Context)

たとえば、前後1行ずつ表示したい場合は:


grep -C 1 ERROR logfile.txt

このように、表示したい範囲によってオプションを使い分けましょう。

6. 応用例:grep -Bで複数行の前の状況をチェックする

6. 応用例:grep -Bで複数行の前の状況をチェックする
6. 応用例:grep -Bで複数行の前の状況をチェックする

ログファイルや設定ファイルの内容を調査する際には、検索にヒットした行の前の情報がとても重要なヒントになることがあります。

以下のようなログがあったとします:


cat system.log
INFO: サービスA起動
INFO: サービスB起動
WARNING: メモリ使用率高
INFO: サービスC起動
ERROR: サービスCクラッシュ
INFO: 自動復旧開始

この中でERRORの前に何が起きていたか確認したいとき:


grep -B 3 ERROR system.log
INFO: サービスB起動
WARNING: メモリ使用率高
INFO: サービスC起動
ERROR: サービスCクラッシュ

このように、エラーの直前の出来事を把握することで、トラブルの原因分析がしやすくなります。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本
New2
ファイル・ディレクトリ操作
stat --formatオプションの使い方を完全ガイド!初心者でもわかるファイル情報のカスタム表示
New3
ファイルとディレクトリ操作
pwdコマンドとは?現在のディレクトリを確認するLinux基本コマンドを初心者向けに解説
New4
ファイル・ディレクトリ操作
touch -dオプションの使い方を完全ガイド!初心者でもわかる日付指定のタイムスタンプ操作
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
Linuxコマンドの基本
Linuxコマンドとは?基本の考え方とシェルとの関係を初心者向けに徹底解説
No.3
Java&Spring記事人気No3
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門