regex - 在文本文件中查找“word:otherword”与 grep 和冒号的组合
问题描述
这并不多,但我没有通过在这里搜索或尝试使用正则表达式生成器找到解决方案:
我想在包含的文本文件中搜索行
due:Mo, due:Di, ... or due:So
也许我接近解决方案
grep "due:+(Mo\|Di\|Mi\|Do\|Fr)" todo.txt --color=auto
但这只是突出显示并搜索 5 天(一周中的德国天数)。谢谢您的帮助!
解决方案
您真的很接近,在 POSIX BRE 模式中,应该转义(
和)
捕获括号,并且您不需要在 POSIX BRE 模式中的+
量词(实际上 +
在您的 POSIX BRE 模式中解析为文字符号):
:
grep "due:\(Mo\|Di\|Mi\|Do\|Fr\)\>"
我还建议使用\>
.
-E
您可以使用带有选项的 POSIX ERE 摆脱一些转义:
grep -E "due:(Mo|Di|Mi|Do|Fr)\>"
请参阅在线演示。