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
オプションをつけたのと(ほぼ)同じ。