【Linux】grepコマンドで前後の行も取得する


この記事はプロモーションを含みます。

Linux

Linux環境のgrepコマンドで、一致した行に加えて前後の行も取得する方法を解説します。

はじめに

grepコマンドで、条件に一致した行と合わせて、前後の行も取得する方法を説明します。
ここでは、以下の3パターンの取得方法を説明したいと思います。

  • 条件に一致した行 + 一致した行の前の行
  • 条件に一致した行 + 一致した行の後ろの行
  • 条件に一致した行 + 一致した行の前後の行

ここでは、分かりやすいように以下のテキストを使用します。
ファイル名は「file1.log」としました。

ABCDE
FGHIJ
KLMNO
PQRST
UVWXY

一致した行+前の行を取得する

grepコマンドの条件に一致した行と、その前の行を取得する方法を説明します。

まずは書式です。

書式
grep -B 取得する行数 検索文字列 ファイル名

実行例です。以下の場合は、行数を「1」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と前の1行が取得されます。

[root@STKPUB002 data]# grep -B 1 LMN file1.log
FGHIJ
KLMNO

以下の場合は、行数を「2」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と前の2行が取得されていることが分かります。

[root@STKPUB002 data]# grep -B 2 LMN file1.log
ABCDE
FGHIJ
KLMNO

一致した行+後ろの行を取得する

grepコマンドの条件に一致した行と、その後ろの行を取得する方法を説明します。

まずは書式です。

書式
grep -A 取得する行数 検索文字列 ファイル名

実行例です。以下の場合は、行数を「1」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と後ろの1行が取得されます。

[root@STKPUB002 data]# grep -A 1 LMN file1.log
KLMNO
PQRST

実行例です。以下の場合は、行数を「2」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と後ろの2行が取得されます。

[root@STKPUB002 data]# grep -A 2 LMN file1.log
KLMNO
PQRST
UVWXY

一致した行+前後の行を取得する

grepコマンドの条件に一致した行と、その前後の行を取得する方法を説明します。

まずは書式です。

書式
grep -C 取得する行数 検索文字列 ファイル名

実行例です。以下の場合は、行数を「1」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と前後の1行が取得されます。

[root@STKPUB002 data]# grep -C 1 LMN file1.log
FGHIJ
KLMNO
PQRST

実行例です。以下の場合は、行数を「2」と指定しているので、条件に一致する行(条件に指定した文字列「LMN」を含む行)と前後の2行が取得されます。

[root@STKPUB002 data]# grep -C 2 LMN file1.log
ABCDE
FGHIJ
KLMNO
PQRST
UVWXY

コメント

タイトルとURLをコピーしました