オプションを設定することで、grep実行時に検索された直後の行も同時に表示することができます。
とても便利なので紹介してみたいと思います。
あまり直後の行を表示させ過ぎても見づらくなってしまうので、3行程度を同時に表示するように大体しています。
スポンサーリンク
grepの-Aオプションで直後に表示する行数を指定できる
下記のように、-A オプションを指定することで、検索された行の直後の表示行数を指定できます。
grep -A 行数 検索文字列 検索対象ファイル
サンプルコード
例えば、下記のようにin.txtが記載されていたとします。
$ cat in.txt before1 before2 before3 before4 target after1 after2 after3 after4
ここで、文字列"target"を検索し、検索された"target"の文字列を含む行と、直後の3行を同時に表示出力したい場合には、
下記のようにコマンドを実行します。
$ grep -A 3 "target" in.txt
実行すると、下記のように、直後の3行が表示されます。
$ grep -A 3 "target" in.txt target after1 after2 after3
スポンサーリンク
直後の行を表示する用途
色々な用途があると思います。
あくまでも参考例ということになりますが、例えばユーザー定義関数をgrep検索して同時に関数の中身を表示させて、関数の中身を把握したい場合があります。
直後を数行表示させただけでは、全ての関数の全ての行を把握することはできない場合が多いとは思います。
ただ、感触をつかむだけなら、効率的な方法になることも多いです。
もちろん用途は人それぞれなので、あくまでご参考ということでお願いします。
よろしければ、下記の記事も参考にしてください。
grepでマッチした直前の行を表示します。
参考:grepで検索された直前の行も合わせて表示する
grepでマッチした前後の行を表示します。
参考:grepの-Cオプションで検索にマッチした前後の行を出力
スポンサーリンク