No.246
【Linux】grepとegrepとfgrep【Unix】
なんでgrepって複数あるのよ
unix系便利コマンドNo.1(自分調べ)のgrep、全世界で最も愛されているコマンドのひとつだろう。
そんなgrepには亜種がある。egrepとfgrepだ。
意外と知らない人がいるけど、それも当然。何となく検索するだけなら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オプションをつけたのと(ほぼ)同じ。