读取的手册页grep
(强调我的)
正则 表达式 正则表达式是描述一组字符串的模式。正则表达式是 构造类似于算术表达式,通过使用各种运算符组合 较小的表达式。 grep理解三种不同版本的正则表达式语法:“基本”(BRE), “扩展”(ERE)和“perl”(PCRE)。在 GNU grep 中可用的没有区别 基本语法和扩展语法之间的功能。
再往下读
重复 正则表达式后面可以跟几个重复运算符之一: ? 前一项是可选的,最多匹配一次。 * 前一项将匹配零次或多次。 + 前一项将被匹配一次或多次。 { n } 前一项恰好匹配 n 次。 { n ,} 前一项匹配 n 次或多次。 {, m } 前一项最多匹配 m 次。这是一个 GNU 扩展。 { n , m } 前一项至少匹配 n 次,但不超过 m 次。
我想我正在使用 GNU 的 grep 因为最后一行是
User Commands GNU grep 2.16 GREP(1)
那么,为什么在按预期包含作品$ echo aa | grep a{2}
时无法输出任何内容?-E
请参阅手册页下方的部分
基本与扩展正则表达式
这里的微妙之处在于,虽然在功能上没有区别,但在语法上却有所不同。尤其是:
{
除非}
转义,否则它们都是字面量,在这种情况下,它们表示量词表达式然而
{
并}
包含量词,除非它们被转义,在这种情况下它们是文字的。所以
如果您不将表达式括在引号中,那么您需要对反斜杠进行反斜杠转义以防止 shell 扩展它们: