test.txt
フォーマットされた電話番号がいくつか含まれているファイルがあります。grep
電話番号を含む行を見つけるために使用しようとしています。
それはgrep -e "[0-9]{3}-[0-9]{3}-[0-9]{4}" test.txt
機能せず、結果が得られないようです。しかし、grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" test.txt
動作します。したがって、これら2つのオプションの違いは何だろうか。
によるとman grep
:
-E, --extended-regexp pattern を拡張正規表現として解釈します (つまり、grep を egrep として動作させます)。
-e pattern, --regexp=pattern 入力の検索中に使用されるパターンを指定します。指定されたパターンのいずれかに一致する場合、入力行が選択されます。このオプションは、複数の -e オプションを使用して複数のパターンを指定する場合、またはパターンがダッシュ (`-') で始まる場合に最も役立ちます。
しかし、私はそれをよく理解していません。拡張正規表現とは何ですか?