首页 > 解决方案 > 在文本文件中查找“word:otherword”与 grep 和冒号的组合

问题描述

这并不多,但我没有通过在这里搜索或尝试使用正则表达式生成器找到解决方案:

我想在包含的文本文件中搜索行

due:Mo, due:Di, ... or due:So

也许我接近解决方案

grep "due:+(Mo\|Di\|Mi\|Do\|Fr)" todo.txt --color=auto

但这只是突出显示并搜索 5 天(一周中的德国天数)。谢谢您的帮助!

标签: regexgreppattern-matchingtext-files

解决方案


您真的很接近,在 POSIX BRE 模式中,应该转义()捕获括号,并且您不需要在 POSIX BRE 模式中的+量词(实际上 +在您的 POSIX BRE 模式中解析为文字符号):

grep "due:\(Mo\|Di\|Mi\|Do\|Fr\)\>"

我还建议使用\>.

-E您可以使用带有选项的 POSIX ERE 摆脱一些转义:

grep -E "due:(Mo|Di|Mi|Do|Fr)\>" 

请参阅在线演示


推荐阅读