如何使用 awk 在文件中搜索匹配模式(存储在变量中)?

如何使用 awk 在文件中搜索匹配模式(存储在变量中)?

我有一个日志文件,我需要检查其中是否有任何错误消息,如果有,请将错误消息提取到另一个文件。

像这样,我可能有错误文件,不同的文件有不同的日志模式。那么如何使用变量搜索匹配模式呢?

因为我想.sh为所有日志文件创建一个通用文件。假设我有一个文件,我想在其中搜索图案并在另一个文件中打印$pat1="ERROR MESSAGE" $pat2="RAISE_ERROR_SEEN"。我想要文件中的所有行黑白这两种模式。

仅使用变量。

答案1

尝试这个,

 awk "/""$pat1""/,/""$pat2""/" test.log | grep -v "$pat3" > Error.bk
  • $pat1将打印和之间的上下文$pat2
  • 由于第一个变量中有空格,因此使用双引号两次。

答案2

用更简单的方式:

grep -e "$pat1\|$pat2" filename > resultfile

相关内容