grep 'd(o|i)g' a.txt
a.txtインクルードを実行しましたが、dig
何も返されませんでした。dog
これが正しい一致方法ですかdig
?
答え1
はい、d(o|i)g
これは正しい方法です。d[oi]g
個々のキャラクターを扱うので、これを行うこともできます。
-E
拡張正規表現を取得するには、grep呼び出しでこのフラグを使用する必要があります。
$ cat a.txt
bird
dog
cat
dug
$ grep 'd(o|i)g' a.txt
$ grep -E 'd(o|i)g' a.txt
dog
答え2
正規表現のメタ文字をエスケープする必要があります。
> echo dig | grep "d\(o\|i\)g"
dig
、またはERE(「拡張正規表現」)に切り替えることができます。
echo dig | grep -E "d(o|i)g"
dig
答え3
試してみることもできますが、grep 'd[io]g'
これは単一のキャラクターにのみ適用されます。