
Wie kann ich audio.itunes.apple.com zuordnen und ignorierenhttp://streamingaudio.itunes.apple.comin einer Protokolldatei mit grep?
Antwort1
Die meisten grep
Implementierungen unterstützen eine -w
Option fürWortübereinstimmen:
grep -wF audio.itunes.apple.com
Oder für grep
Implementierungen (wie die von Solaris), die nicht -w
in Kombination mit Folgendem verwendet werden können -F
:
grep -w 'audio\.itunes\.apple\.com'
Es werden nur Zeilen gefunden, die audio.itunes.apple.com
Folgendes enthalten:Wortzeichen(Wortzeichen sind alphanumerische Zeichen oder Unterstriche (beschränkt auf Einzelbyte-Zeichen für GNU-Versionen grep
vor 2.19)). Einige Implementierungen, wie unter Solaris, beschränken den übereinstimmenden String auch darauf, mit einem Wortzeichen zu beginnen (aber nicht notwendigerweise zu enden), es sei denn, dieses Nicht-Wortzeichen steht am Anfang der Zeile (was in diesem Fall allerdings keinen Unterschied macht, da das erste Zeichen des übereinstimmenden Teils immer ein Wortzeichen grep
sein wird ).a
Daher würde es hier mit „auf“ übereinstimmen, http://audio.itunes.apple.com
weil /
es sich um ein Nicht-Wort-Zeichen handelt, aber nicht mit „auf“, http://streamingaudio.itunes.apple.com
da das g
vorangehende audio
Zeichen ein Wort-Zeichen ist.
Das POSIX-Äquivalent wäre:
grep -E '(^[^[:alnum:]_])audio\.itunes\.apple\.com([^[:alnum:]_]|$)'
Oder mit BREs:
grep -x '\(.*[^[:alnum:]_]\)\{0,1\}audio\.itunes\.apple\.com\([^[:alnum:]_].*\)\{0,1\}'
Einige grep
Implementierungen, darunter GNU, grep
unterstützen einen \<
Regexp-Operator, der am Übergang zwischen einem Nicht-Wort und einem Wort passt (Solaris grep
hat \<
dieselbe seltsame zusätzliche Einschränkung wie -w
oben). Sie können also Folgendes verwenden:
grep '\<audio\.itunes\.apple\.com'
mit diesen grep
Implementierungen.
Antwort2
Bitte verwenden Sie -v, --invert-match
Kehrt die Übereinstimmungsrichtung um, um nicht übereinstimmende Zeilen auszuwählen. (-v wird von POSIX angegeben.)