Daher habe ich eine Reihe von Apache-Protokollen mit dem Standardprotokollformat. Ich möchte alle Protokollzeilen abrufen, die nicht von einem Webcrawler stammen.
Nehmen wir also an, ich habe eine Datei robot_patterns mit Einträgen wie
Googlebot
msnbot-media
YandexBot
bingbot
Wenn ich den Befehl ausführe grep -f robot_patterns *.log, erhalte ich alle Einträge von Bots, die den obigen Mustern entsprechen. Meine aktuelle Liste enthält ca. 30 Einträge von Bots und Agenten, die ich ignorieren möchte.
Aber ich möchte alle Einträge finden, die NICHT von Bots stammen . Also versuche ich grep -v -f robot_patterns *.logund es werden keine Ergebnisse von grep zurückgegeben. Dies ist nicht das, was ich erwarte oder wünsche, und ich finde keinen offensichtlichen Weg, um das zu bekommen, was ich will. Wenn Sie die -vOption mit mehreren Mustern in einer Datei kombinieren, gibt grep nur dann eine übereinstimmende Zeile zurück, wenn sie mit JEDEM Muster übereinstimmt.
GNU grep 2.6.3.