grep
syslog ファイルと照合するために正規表現パターンのリストを渡しています。これらは通常、IP アドレスとログ エントリに一致します。
grep "1\.2\.3\.4.*Has exploded" syslog.log
ループで渡す部分のようなパターンのリストにすぎ"1\.2\.3\.4.*Has exploded"
ないため、たとえば「-v」を渡すことはできません。
上記の逆を実行しようとして混乱し、特定の IP アドレスとエラーを含む行と一致しないため、「!1.2.3.4.*爆発しました」は 1.2.3.4 以外の syslog 行と一致し、爆発したことを示します. 一致しない IPを含めることができる必要があります。
StackOverflow で同様のさまざまな投稿を見てきました。しかし、彼らは私がうまく扱えないように見える正規表現パターンを使用してい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