最佳答案
我将正则表达式模式的列表传递给grep
以检查syslog文件。它们通常匹配一个IP地址和日志条目;
grep "1\.2\.3\.4.*Has exploded" syslog.log
它只是一个模式列表,就像我在循环中传递的"1\.2\.3\.4.*Has exploded"
部分,所以我不能传递"-v",例如。
我很困惑,试图做的相反的上面,和不匹配行与特定的IP地址和错误所以"!1.2.3.4。* exploded"将匹配syslog行任何其他1.2.3.4告诉我它已经爆炸。我必须能够包含一个IP地址,以不匹配。
我在Stack Overflow上看到过各种类似的帖子。然而,它们使用正则表达式模式,我似乎无法使用grep
。grep
的工作示例是什么?
这发生在这样的脚本中;
patterns[1]="1\.2\.3\.4.*Has exploded"
patterns[2]="5\.6\.7\.8.*Has died"
patterns[3]="\!9\.10\.11\.12.*Has exploded"
for i in {1..3}
do
grep "${patterns[$i]}" logfile.log
done