Buscar

Linux: grep ejemplos

El comando grep se utiliza para buscar texto. En este post veremos varios ejemplos de su funcionamiento.

La entrada de texto hacia el comando grep puede realizarse de varias formas.

Linux: grep ejemplos: Uso simple:


1) Busca la cadena: "Texto" en el fichero: fichero.txt

grep "Texto" fichero.txt

2) Busca la cadena: "Texto" en los ficheros: fichero1.txt y fichero2.txt

grep "Texto" fichero1.txt fichero2.txt

3) Busca las cadenas: "Texto1" y "Texto2" en el fichero: fichero.txt

grep "Texto1 Texto2" fichero.txt

4) Visualiza el contenido de: fichero.txt y con una tubería se pasa la salida al comando grep que busca la cadena: "Texto":

cat fichero.txt | grep "Texto"


5) Se ejecuta cierto comando y con una tubería se pasa la salida al comando grep que busca la cadena: "Texto":

Comando | grep "Texto"

Linux: grep ejemplos: Uso avanzado:


1) Muestra la versión de grep:

grep --version

2) Busca la cadena "Texto1" o "Texto2" en el interior del fichero sysadmit.txt

grep -E 'Texto1|Texto2' sysadmit.txt

3) Busca la cadena "Texto1" en el interior del fichero sysadmit.txt, pero muestra las lineas que no coinciden:

grep -v "Texto1" sysadmit.txt
 

4) Busca en el interior de los ficheros acabados con .sh,.pl,.txt la cadena "Texto" en el directorio /usr/local/SYSADMIT

Con -R: Se indica que buscará también en subdirectorios.
Con -i: Se indica que se ignorarán mayúsculas y minúsculas.

grep -R -i --include=\*.{sh,pl,txt} "Texto" /usr/local/SYSADMIT

5) Muestra las lineas que empiezan por: Texto1 en el interior del fichero sysadmit.txt

grep "^Texto1" sysadmit.txt

6) Cuenta las veces que aparece la cadena: "Texto" en el fichero: /usr/local/SYSADMIT/sysadmit.txt


grep -c "Texto" /usr/local/SYSADMIT/sysadmit.txt

7) En el resultado de la búsqueda, muestra solo la cadena "Texto" en vez de toda la linea en el fichero sysadmit.txt

Con -o: Muestra solo la parte que coincide

grep -o "Texto" sysadmit.txt

8) Muestra solo los nombres de fichero que en su interior contengan la cadena: "Texto1" a partir de la ruta: /usr/local/SYSADMIT

grep -rl "Texto1" /usr/local/SYSADMIT
 

Linux: grep ejemplos: Otros comandos relacionados con grep:


egrep: Equivalente a grep -E: Busquedas indicando un patrón.


rgrep: Equivalente a grep -r: Busqueda recursiva.

Linux: grep ejemplos: Códigos de error


* Ejemplo1: Mostrar código de error

grep -q "Texto1" sysadmit.txt
echo $?


Busca la palabra "Texto1" en el interior del fichero sysadmit.txt


Con el parámetro -q (modo silencioso), no muestra la salida del comando.


Con echo $?, muestra el código de error

Los códigos de error posibles, son:

0 = Encuentra coincidencia.
1 = No encuentra coincidencia.
2 = Error.

* Ejemplo2: grep dentro de un if, else

Busca la cadena "Texto" en el interior del fichero: sysadmit.txt

Si la cadena coincide, aparece: Encontrado, si no, aparece: No encontrado

Con el parámetro -q (modo silencioso), no muestra la salida del comando.

if grep -q "Texto" sysadmit.txt; then
    echo Encontrado
else
    echo No encontrado
fi

3 comentarios:

  1. Cómo buscar en archivos comprimidos con gzip:

    zgrep "texto" archivo.gz

    ResponderEliminar
    Respuestas
    1. Muchas gracias por tu aporte y por participar en el blog.

      Un saludo,

      Xavi.

      Eliminar
  2. grep -lyr "Nagios" .

    Busca la Palabra "nagios" dentro de los ficheros y te enumera una de lista de los ficheros que la contienen. (útil cuando tienes que buscar una palabra o parte de un código y no sabes que ficheros de los 200000 es)

    ResponderEliminar