正規表現学習記録 grep egrep fgrep

読んでいた本に出てきたので整理

grepとは

'g'lobal 'r'egular 'e'xpression 'p'rint

つまり、全体から正規表現で一致したものを抽出するためのコマンド

grep 検索したい文字列 ファイル名

でファイル内検索ができる ちなみにファイル名の部分をディレクトリ名にすると、 「それはディレクトリだ!」とターミナルに怒られます(今さっき怒られた)

ディレクトリ内のファイルを検索したい時には ディレクトリ/*としましょう

egrepとは

'e'xtended grep つまりgrepの機能拡張版

orの機能を持つ|が使える 例)文字列'ruby' または'node'を探したい時

egrep 'ruby|node' ./* =>結果が返ってくる
grep 'ruby|node' ./* =>結果が返ってこない

grep -Eとほぼ同じ機能(-E, --extended-regexp

fgrepとは

入力された文字列そのままの検索が出来る

例えば、.正規表現では任意の一文字を表すが、fgrepの中では.をただの文字列‘ドット’として使うことができる

fgrep ('text.txt') hoge.txt => text.txtがあればそれのみを返す
grep ('text.txt') hoge.txt => text@txtも返すし、text:txtも返す

grep -Fとほぼ同じ機能(-F, --fixed-strings)

ちなみに参考にした記事を見たらもっと機能がありました…全部知りたいけど、果てしないので今日はここまで

参考

manpages.ubuntu.com

eng-entrance.com