收集pattern1和pattern2之间的所有字符串,但只打印其中与pattern3匹配的字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收集pattern1和pattern2之间的所有字符串,但只打印其中与pattern3匹配的字符串相关的知识,希望对你有一定的参考价值。

我正在尝试处理一个大型测试日志文件,该文件打印测试日志的日志。测试块从"start running"(下面的pattern1)开始,以"test end"结尾(下面是pattern2);在这两个字符串之间有一个"Error Message"pattern3),显示详细的错误信息。

这是我想要做的和我做了什么:

  1. 搜索日志文件(test.log)并使用sed打印出“完整”测试日志: sed -n '/pattern1/,/pattern2/p' test.log 这将收集所有测试的完整日志
  2. 我想基于步骤1进一步前进,只打印出包含“错误消息”(pattern3)的行以及包含pattern1 pattern2的行。如何在单行sed命令中完成它?

3.我可以使用Python re模块来解决这个问题吗?

以上是关于收集pattern1和pattern2之间的所有字符串,但只打印其中与pattern3匹配的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Linux grep常用命令

用于在列1中选择与第2列中的两个模式之一匹配的值对的SQL查询

在LARGE日志文件中有效地grep两个模式之间的字符串

BEGIN和END语句块

精通awk系列:BEGIN和END语句块

awk的模式和动作