cómo hacer coincidir el subdominio exacto con grep ignorando a los demás

cómo hacer coincidir el subdominio exacto con grep ignorando a los demás

¿Cómo puedo hacer coincidir audio.itunes.apple.com e ignorar?http://streamingaudio.itunes.apple.comen un archivo de registro usando grep?

Respuesta1

La mayoría de greplas implementaciones admiten una -wopción parapalabrafósforo:

grep -wF audio.itunes.apple.com

O para grepimplementación (como la de Solaris) que no se puede usar -wen combinación con -F:

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

Solo encontraría líneas que contengan audio.itunes.apple.comsiempre que no estén precedidas ni seguidas por uncarácter de palabra(los caracteres de las palabras son alfanuméricos o guiones bajos (restringidos a los de un solo byte para las versiones de GNU grepanteriores a la 2.19)). Algunas grepimplementaciones, como en Solaris, también restringen la cadena coincidente para que comience (aunque no necesariamente termine) con un carácter de palabra, a menos que ese carácter que no sea una palabra esté al principio de la línea (aunque eso no hace ninguna diferencia en este caso, ya que el primer carácter de la línea). la parte coincidente siempre será a, un carácter de palabra).

Así que aquí coincidiría con http://audio.itunes.apple.comporque /no es un carácter de palabra, pero no con http://streamingaudio.itunes.apple.comporque el gque precede audioes un carácter de palabra.

El equivalente POSIX sería:

grep -E '(^[^[:alnum:]_])audio\.itunes\.apple\.com([^[:alnum:]_]|$)'

O con BRE:

grep -x '\(.*[^[:alnum:]_]\)\{0,1\}audio\.itunes\.apple\.com\([^[:alnum:]_].*\)\{0,1\}'

Algunas grepimplementaciones, incluida GNU, grepadmiten un \<operador de expresión regular que coincide en la transición entre una palabra y una palabra (Solaris greptiene \<la misma restricción adicional que la -wanterior). Entonces puedes usar:

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

con esas grepimplementaciones.

Respuesta2

Utilice -v, --invert-match

Invierta el sentido de coincidencia para seleccionar líneas que no coinciden. (-v lo especifica POSIX).

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

información relacionada