es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo utilizar egrep con comillas dobles en la cadena de búsqueda?

Tengo un archivo sample.txt con el siguiente contenido:

$ cat sample.txt
bc
it is | ERROR
first
second
third
No space left
1
2
3
4

Quiero buscar tanto | ERROR como No space left. Cuando intento utilizar el siguiente comando, no obtengo el resultado esperado:

$ egrep -w ' "| ERROR"|No space left' sample.txt
No space left

Por favor, ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para buscar tanto | ERROR como No space left en sample.txt utilizando el comando egrep de forma correcta, podemos encerrar el patrón de búsqueda entre paréntesis y separarlos usando una barra vertical (|) como operador OR. El comando se vería así:

    $ egrep -w '(\| ERROR|No space left)' sample.txt
    it is | ERROR
    No space left
    

    Aquí, se utiliza la opción -w para que coincida solo con palabras completas, no con subcadenas. El patrón de búsqueda está encerrado entre comillas simples para evitar la expansión del shell de caracteres especiales. La barra vertical (|) se escapa con una barra invertida (\) para asegurarse de que se trate como un carácter literal. Los paréntesis se utilizan para agrupar el patrón de búsqueda y aplicarles el operador OR.

    El resultado esperado se obtiene ahora, que incluye ambas líneas que contienen el patrón de búsqueda deseado.

Comments are closed.