如何将 OR 与 grep 一起使用?

如何将 OR 与 grep 一起使用?

我运行了grep 'd(o|i)g' a.txta.txt 包含dig但没有返回任何内容。这是正确的匹配方式dogdig

答案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'但这仅适用于单个字符。

相关内容