'^\{[a-z]*:[0-9]*\}$|;^[a-z]=[0-9]$'
怎么了?文档(手册页)说,\\是交替运算符。
发布于 2012-03-29 09:13:13
从手册页:
交替
两个正则表达式可以由infix操作符来连接;得到的正则表达式匹配任何匹配任意一个替换表达式的字符串。
你误解了这一点,这并不是说|;
是交替运算符,而是说|
是交替运算符,分号分隔句子的两个部分。
另外,除非使用扩展regex选项(-E
),否则需要转义|
Basic与扩展正则表达式
在基本正则表达式中,元字符?、+、{、\、(和)失去了它们的特殊意义;相反,请使用反斜杠版本\、+、{、\、(和)。
最终结果可能如下所示:
grep -E '^\{[a-z]*:[0-9]*\}$|^[a-z]=[0-9]$' some_file
或者没有-E
选项:
grep '^{[a-z]*:[0-9]*}$\|^[a-z]=[0-9]$' some_file
https://stackoverflow.com/questions/9929841
复制相似问题