我知道多行正则表达式已经讨论了几十次,但我无法让它与我的模式一起工作。
我会试着解释一下。我在一个目录中有一些文本文件。文件中的文本示例:
LINE OF TEXT 2
LINE OF TEXT 1
LINE OF TEXT 3
LINE OF TEXT 1
LINE OF TEXT 2
LINE OF TEXT 3
LINE OF TEXT 1
LINE OF TEXT 3
LINE OF TEXT 3
LINE OF TEXT 2
LINE OF TEXT 1
LINE OF TEXT 2
LINE OF TEXT 3
Run Code Online (Sandbox Code Playgroud)
我想找到在“LINE OF TEXT 2”之后的“LINE OF TEXT 3”,而后者又出现在“LINE OF TEXT 1”之后(中间没有空行)。
每行必须是一个正则表达式本身,例如一行以“LINE”开头并以特定数字结尾。
注意:并非所有文件都包含该确切的行序列,因此如果模式匹配,则不要打印模式,而只是将文件名打印到 STDOUT。
这可以在单行正则表达式中完成吗?因此,例如,awk 在文件中搜索模式,如果找到模式,则将文件名打印到 STDOUT。然后我可以将此正则表达式与“find -exec”结合使用。
任何提到的工具都可以使用(grep、awk、sed 或 perl)。