unix grep – Cómo grep palabra exacta con solo espacio como separador de palabras

Pregunta:

Por ejemplo: tengo un archivo como el siguiente:

AA ABC-AA-AA
AAA ABC-AA
ABC.AA ABC
AA ABC.A AA

Si utilizo grep -w "ABC" file1 , grep -w "ABC" file1 todas las líneas.

Pero solo debería obtener la tercera línea: ABC.AA ABC

Está tomando . y - como separadores de palabras. Pero solo necesito espacio como separador de palabras.

Respuesta:

Desde la página de manual de (GNU) grep(1) :

-w, –word-regexp

Seleccione solo aquellas líneas que contengan coincidencias que formen palabras completas. La prueba es que la subcadena coincidente debe estar al principio de la línea o precedida por un carácter que no sea una palabra. De manera similar, debe estar al final de la línea o seguido de un carácter constituyente que no sea una palabra. Los caracteres que constituyen la palabra son letras, dígitos y el subrayado .

Por lo tanto, deberá solicitar explícitamente que los espacios (o comienzos y / o finales de línea) estén allí:

grep -E '(^| )ABC( |$)' file1

Si también desea incluir otros caracteres de espacio en blanco, reemplace los espacios de arriba con un conjunto más grande, por ejemplo, [[:space:]] (nuevamente vea la página de manual de grep(1) ).

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım