我将正则表达式模式的列表传递给grep以检查一个syslog文件。它们通常匹配一个IP地址和日志条目;
grep "1\.2\.3\.4.*Has exploded" syslog.log
它只是一个模式列表,比如“1\ 2\.3\.4”。*已经爆炸了“我正在传递的部分,在循环中,所以我不能传递“-v”,例如。
我很困惑,试图做相反的上面,而不是匹配行与某个IP地址和错误所以“!1.2.3.4。*已经爆炸”将匹配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