指定したファイル(またはファイル群)から、指定したパターンに合致する行を検索して表示する処理。あるいはコマンドやツール。
コマンドラインしか無かった時代から存在する、老舗の概念であるが、昨今では GUI として提供されたものも多い。たとえばVSCodeでは、Ctrl + Shift + F キーを押すだけで、もう検索画面を呼び出せる。そういう意味では「全文検索」と同義だと考えても差し支えない(オタクはうるさいだろうが)。
grepの本質というか、本来の世界観は以下であろう。
コマンドラインツールとして柔軟に実行できる
パターンとして正規表現が使える(ので非常に強力に探せる)
検索結果から当該箇所にジャンプできる
厳密には「ジャンプするツール」があって、grepはそのツールがサポートする形式で表示している
知らなければピンと来ないかもしれないが、黒い画面で日々生きているエンジニアやプログラマーにとっては「無いと死ぬ」くらい重要な道具である。
検索対象範囲が広いと、当然だが検索にも時間がかかる。
この問題はなかなか厄介だが、搦め手で解決したものもある。
ripgrepは、gitignoreという「指定パターンを操作対象外にする」記法を使って「こういうファイルは検索するな!」を指定できるようになっている。
---