So passen Sie die genaue Subdomäne mit Grep an und ignorieren andere

So passen Sie die genaue Subdomäne mit Grep an und ignorieren andere

Wie kann ich audio.itunes.apple.com zuordnen und ignorierenhttp://streamingaudio.itunes.apple.comin einer Protokolldatei mit grep?

Antwort1

Die meisten grepImplementierungen unterstützen eine -wOption fürWortübereinstimmen:

grep -wF audio.itunes.apple.com

Oder für grepImplementierungen (wie die von Solaris), die nicht -win Kombination mit Folgendem verwendet werden können -F:

grep -w 'audio\.itunes\.apple\.com'

Es werden nur Zeilen gefunden, die audio.itunes.apple.comFolgendes enthalten:Wortzeichen(Wortzeichen sind alphanumerische Zeichen oder Unterstriche (beschränkt auf Einzelbyte-Zeichen für GNU-Versionen grepvor 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 grepsein wird ).a

Daher würde es hier mit „auf“ übereinstimmen, http://audio.itunes.apple.comweil /es sich um ein Nicht-Wort-Zeichen handelt, aber nicht mit „auf“, http://streamingaudio.itunes.apple.comda das gvorangehende audioZeichen 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 grepImplementierungen, darunter GNU, grepunterstützen einen \<Regexp-Operator, der am Übergang zwischen einem Nicht-Wort und einem Wort passt (Solaris grephat \<dieselbe seltsame zusätzliche Einschränkung wie -woben). Sie können also Folgendes verwenden:

grep '\<audio\.itunes\.apple\.com'

mit diesen grepImplementierungen.

Antwort2

Bitte verwenden Sie -v, --invert-match

Kehrt die Übereinstimmungsrichtung um, um nicht übereinstimmende Zeilen auszuwählen. (-v wird von POSIX angegeben.)

grep -vhttp://streamingaudio.itunes.apple.com

verwandte Informationen