我正在尝试使用带有正则表达式的grep在文件中查找与2个可能的字符串之一匹配的行。这是我的grep:
$ grep "^ID.*(ETS|FBS)" my_file.txt
上面的grep不返回任何结果。但是,如果我执行以下任一操作:
$ grep "^ID.*ETS" my_file.txt
或者
$ grep "^ID.*FBS" my_file.txt
我确实匹配特定的行。为什么我的OR正则表达式不匹配?在此先感谢您的帮助!
与正常的正则表达式,人物(
,|
并且)
需要进行转义。所以你应该使用
$ grep "^ID.*\(ETS\|FBS\)" my_file.txt
使用扩展的regex(-E
)选项时,您不需要转义符。请参阅man grep
“ Basic vs Extended Regular Expressions
”部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句