No.246


【Linux】【Unix】grepとegrepとfgrep

なんでgrepって複数あるのよ

 unix系便利コマンドNo.1(自分調べ)のgrep、全世界で最も愛されているコマンドのひとつだろう。

 そんなgrepには亜種がある。egrepfgrepだ。
 意外と知らない人がいるけど、それも当然。何となく検索するだけならgrepで十分だし、grepにオプションつけると同じになっちゃうし。


grep

 言わずと知れた基本コマンド。

 語源がedのコマンドに由来するというのは初めて知った。

grep = g/re/p (globally search a regular expression and print)

egrep

 追加の正規表現が使えるgrep
 例えば^などが使える。先頭が「foo」もしくは「bar」で始まる行を抽出するケースは以下のように書ける。

egrep '^(foo|bar)' hoge.txt

 grep-Eオプションをつけたのと(ほぼ)同じ。


fgrep

 入力された文字列そのままの検索が出来るgrep
 例えば.などの正規表現文字がそのまま検索できる。文字列「(foo.bar)」を含む行を抽出するケースは以下のように書ける。

fgrep '(foo.bar)' hoge.txt

 grep-Fオプションをつけたのと(ほぼ)同じ。