#navi(../)
* grepで検索した行の前後も表示する方法 [#feb1a33e]
grepコマンドを使用して検索した行の前後を確認する方法を記します。~
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#o2ca3e72]
-[[grepでタブを検索する方法>逆引きUNIXコマンド/grepでタブを検索する方法]]
-[[grepでハイフン付のキーワードを検索する方法>逆引きUNIXコマンド/grepでハイフン付のキーワードを検索する方法]]
-[[grepで指定したキーワードに色をつける>逆引きUNIXコマンド/grepで指定したキーワードに色をつける]]
-[[grepで複数のキーワードを除外する方法>逆引きUNIXコマンド/grepで複数のキーワードを除外する方法]]
-[[grepで複数キーワードを利用する>逆引きUNIXコマンド/grepで複数キーワードを利用する]]
-[[複数パターン指定でgrepが遅い場合の対応方法>逆引きUNIXコマンド/複数パターン指定でgrepが遅い場合の対応方法]]
-[[grepで大文字小文字を区別しないで検索する>逆引きUNIXコマンド/grepで大文字小文字を区別しないで検索する]]
-[[grepコマンドでパターンヒットがあったファイルのファイル名のみ表示する方法>逆引きUNIXコマンド/grepでパターンヒットがあったファイルのファイル名のみ表示する方法]]
-[[grepコマンド単体で隠しファイルや隠しディレクトリも対象にする方法>逆引きUNIXコマンド/grep単体で隠しファイルや隠しディレクトリも対象にする方法]]
-[[ディレクトリ配下のファイルも対象にgrepする>逆引きUNIXコマンド/ディレクトリ配下のファイルも対象にgrepする]]
-[[grepで指定した拡張子のみ対象としサブディレクトリも含む再帰検索する方法>逆引きUNIXコマンド/grepで指定した拡張子のみ対象としサブディレクトリも検索する方法]]
* 前後を表示するオプション [#aaf50007]
以下のオプションによりパターンマッチした前後を表示することができます。
|-A 行数|パターンマッチした行の後ろの行を表示する。|
|-B 行数|パターンマッチした行の前の行を表示する。|
|-C 行数|パターンマッチした行の前後の行を表示する。|
* -A, -B, -C のオプションを使用してみる [#ld563e97]
以下、-A, -B, -Cオプションを使用した例を記します。~
尚、使用したデータは以下の通りです。
#ref(pref.txt)
$ cat pref.txt
hokkaido
aomori
iwate
miyagi
akita
yamagata
fukushima
ibaraki
tochigi
gunma
saitama
chiba
tokyo
kanagawa
niigata
toyama
ishikawa
fukui
yamanashi
nagano
gifu
shizuoka
aichi
mie
shiga
kyoto
osaka
hyogo
nara
wakayama
tottori
shimane
okayama
hiroshima
yamaguchi
tokushima
kagawa
ehime
kochi
fukuoka
saga
nagasaki
kumamoto
oita
miyazaki
kagoshima
okinawa
** パターンマッチした行の後ろの行を表示する -A オプションを使用してみる [#ef4bc73e]
キーワードがtokyoで-Aオプションに1と2を渡した場合の実行結果です。~
tokyoの後ろにある行が表示されるのが確認できます。
$ grep -A 1 tokyo pref.txt
tokyo
kanagawa
$ grep -A 2 tokyo pref.txt
tokyo
kanagawa
niigata
** パターンマッチした行の前の行を表示する -B オプションを使用してみる [#u6cae7b8]
キーワードがtokyoで-Bオプションに1と2を渡した場合の実行結果です。~
tokyoの前にある行が表示されるのが確認できます。
$ grep -B 2 tokyo pref.txt
saitama
chiba
tokyo
$ grep -B 1 tokyo pref.txt
chiba
tokyo
** パターンマッチした行の前後の行を表示する -C オプションを使用してみる [#jfa0d785]
キーワードがtokyoで-Cオプションに1と2を渡した場合の実行結果です。~
tokyoの前後にある行が表示されるのが確認できます。
$ grep -C 1 tokyo pref.txt
chiba
tokyo
kanagawa
$ grep -C 2 tokyo pref.txt
saitama
chiba
tokyo
kanagawa
niigata
** -A, -B オプションの混在 [#o9d43c80]
オプション-A, -Bの両方を使えば、パターンマッチした行の前何行、後ろ何行という風に出力することができます。~
以下の実行結果は、前2行、後ろ3行を指定し実行した結果です。
$ grep -B 2 -A 3 tokyo pref.txt
saitama
chiba
tokyo
kanagawa
niigata
toyama
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)