我是控制台新手。据我所知,匹配多个模式如下:
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 引用页面是必读之作。