grep 问题,如何过滤几种类型的模式?

grep 问题,如何过滤几种类型的模式?

我是控制台新手。据我所知,匹配多个模式如下:

aaa|bbb

但是,| 字符是控制台上的管道,所以我如何为 grep 指定这些多种模式?

答案1

您可以转义管道并将模式放在引号中:

grep "aaa\|bbb"

或使用-E

grep -E "aaa|bbb"

或者

grep -E aaa\|bbb

答案2

在你的模式之间加上“”,例如 egrep "toto|name"

答案3

或者你去

grep -ie aaa -ie bbb filename

在文件名中查找 aaa 或 bbb,不区分大小写。

答案4

将您的模式括在单引号中:

grep -E 'aaa|bbb'

如果您的模式包含撇号,请将其括在双引号中:

grep -E "its|it's"

如果它同时包含单引号和双引号,则将其括在双引号中,并在字符 、 和"$加上反斜杠:`\

grep -E "its|it's|letter \"e\"|pay \$20|\`a'|C:\\\\AUTOEXEC\\.BAT"

最后一个例子C:\AUTOEXEC.BAT考虑到反斜杠对于 shell 和 egrep 的正则表达式语法都是特殊的。

附言:bash 引用页面是必读之作。

相关内容