grepで前後の行も表示させる方法
grepで検索を行った際に、該当した行の前後も合わせて表示させたいことがあると思います。
オプションを指定することで前後の行以外にも、前の行だけや後ろの行だけといった形で表示させることができますので、その方法を説明していきます。
- 前後の行も表示 grep -行数
- 前後の行も表示 grep -C 行数
- 前の行も表示 grep -A 行数
- 後ろの行も表示 grep -B 行数
1〜10までの数字が記述されているテキストファイルを使用して、実際にどのような感じで表示されるのかを試していきます。
$ cat num.txt 1 2 3 4 5 6 7 8 9 10
前後の行を含んで表示させる
指定した行数分だけ前後の行も表示させるには「-行数」で指定する方法と、「-C 行数」で指定する方法があります。
grep -行数
grepで5を検索して前後2行を表示させるようにしてみます。
$ grep -2 5 num.txt 3 4 5 6 7
検索で該当した行以外に、前後2行も表示されました。
grep -C 行数
「-C 行数」は「-行数」オプションと同じ動作をします。
前後の3行もあわせて表示させてみます。
$ grep -C 3 5 num.txt 2 3 4 5 6 7 8
検索で該当した行以外に、前後3行が表示されました。
後ろの行だけを含んで表示させる
検索で該当した行と後ろの行だけを表示させるには「-A 行数」オプションを使用します。
grep -A 行数
grepで5を検索して後ろ2行も合わせて表示させるようにしてみます。
$ grep -A 2 5 num.txt 5 6 7
後ろ2行を合わせて表示することができました。
前の行だけを含んで表示させる
検索で該当した行とその前の行を表示させるには「-B 行数」オプションを使用します。
grep -B 行数
grepで5を検索して前の4行も合わせて表示させるようにしてみます。
$ grep -B 4 5 num.txt 1 2 3 4 5
前の4行を合わせて表示することができました。
grep -A 行数と -B 行数の組み合わせ
「-A」と「-B」オプションを組み合わせることにより、前の行と後ろの行をそれぞれ好きな行数表示させることができます。
前の行を4行、後ろの行を2行を含んで表示させてみます。
$ grep -A 2 -B 4 5 num.txt 1 2 3 4 5 6 7
コメント