Ejercicios prácticos de búsqueda de texto con grep en Linux

InformáticaActualizado el 4,1 KB

Resumen

Este documento reúne una serie de ejercicios para practicar el comando grep en Linux. A partir de ejemplos de búsqueda en directorios y ficheros, el estudiante aprenderá a localizar cadenas, excluir líneas, usar comodines y expresiones regulares básicas y redirigir resultados.

Puntos clave

  • grep -Rn busca recursivamente una cadena y muestra el número de línea junto al contenido.
  • grep -Rl muestra únicamente los nombres de los ficheros que contienen la cadena buscada.
  • grep -v excluye las líneas que contienen el patrón, y -i ignora la diferencia entre mayúsculas y minúsculas.
  • El punto (.) actúa como comodín de un carácter, por ejemplo m.n localiza palabras con una m, cualquier letra y una n.
  • Las anclas ^ y $ permiten buscar patrones al principio o al final de la línea, como "m.*n$".
  • grep -E 'a|i' o grep '[ai]' localizan líneas que contienen una a o una i.
  • El operador > redirige la salida de grep a un fichero nuevo, como palabras2.txt.

Ponte a prueba

Este documento presenta una serie de ejercicios diseñados para practicar y dominar el uso del comando grep en entornos Linux. A través de estos ejemplos, aprenderás a buscar patrones de texto en ficheros y directorios, utilizando diversas opciones y expresiones regulares.

Búsqueda Básica de Patrones con Grep

28) Mostrar ficheros y líneas que contienen una palabra específica

Muestra los ficheros que contienen la palabra host dentro del directorio /etc, junto con la línea que contiene dicha cadena.

grep -Rn host /etc

29) Mostrar solo los nombres de los ficheros con una palabra específica

Igual que el ejercicio anterior, pero mostrando solo los nombres de los ficheros.

grep -Rl host /etc

30) Excluir líneas que contienen una letra específica

Muestra todas las líneas del fichero listado.txt que no contienen la letra 'a' (mayúscula o minúscula).

grep -Riv a listado.txt

Trabajando con el fichero palabras.txt

31) Creación de un fichero de texto para ejercicios

Crea un fichero de texto llamado palabras.txt con las siguientes palabras (cada una en una línea): mano, mena, mono, mina, amante, amigo, amatista, amianto, jamón y main. Utiliza este fichero para los siguientes ejercicios.

touch palabras.txt
echo "mano" >> palabras.txt
echo "mena" >> palabras.txt
echo "mono" >> palabras.txt
echo "mina" >> palabras.txt
echo "amante" >> palabras.txt
echo "amigo" >> palabras.txt
echo "amatista" >> palabras.txt
echo "amianto" >> palabras.txt
echo "jamón" >> palabras.txt
echo "main" >> palabras.txt
cat palabras.txt

32) Búsqueda de palabras que contengan una cadena

Muestra todas las palabras que contengan la cadena ma.

grep ma palabras.txt

33) Búsqueda de patrones con caracteres comodín

Muestra todas las palabras que contengan una cadena donde la primera letra sea 'm', la segunda cualquier letra y la tercera 'n'.

grep m.n palabras.txt

34) Combinación de patrones de búsqueda

Igual que el ejercicio anterior, pero que además contenga la letra 'a'.

grep m.n palabras.txt | grep a

35) Búsqueda de patrones al principio y al final de la palabra

Muestra todas las palabras que contengan una cadena con una 'm' al principio, una 'n' al final y cualquier combinación de caracteres entre estas dos letras.

grep "m.*n$" palabras.txt

36) Búsqueda de patrones con longitud específica

Igual que el ejercicio anterior, pero entre la 'm' y la 'n' debe haber exactamente dos caracteres.

grep "m..n$" palabras.txt

37) Búsqueda de palabras que contengan una u otra letra

Muestra las palabras que contienen una 'a' o una 'i' (una u otra).

grep '[ai]' palabras.txt

Alternativa:

grep -E 'a|i' palabras.txt

38) Filtrado y redirección de resultados

Vuelca las líneas que contienen al menos una 'a' y una 'i' (ambas presentes) en el fichero palabras2.txt.

grep a palabras.txt | grep i > palabras2.txt

39) Mostrar el número de línea de una coincidencia

Muestra el número de la línea en la que aparece main dentro del archivo palabras2.txt.

grep -n main palabras2.txt

40) Búsqueda recursiva en directorios

Muestra todos los ficheros y directorios que hay dentro de /usr y dentro de todos sus subdirectorios de forma recursiva, siempre que contengan en su interior la cadena mp3.

grep -r "mp3" /usr

Descargar

PDF Word HTML

Preguntas frecuentes

¿Cómo busco una palabra en todos los ficheros de un directorio con grep?

Se usa grep -Rn seguido de la palabra y la ruta del directorio, por ejemplo grep -Rn host /etc. La opción -R recorre subdirectorios y -n muestra el número de línea.

¿Cómo muestro solo los nombres de los ficheros que contienen una cadena?

Con la opción -l, por ejemplo grep -Rl host /etc, que muestra únicamente los ficheros coincidentes.

¿Cómo excluyo las líneas que contienen una letra con grep?

Con la opción -v. El ejercicio grep -Riv a listado.txt muestra las líneas que no contienen la letra a, sin distinguir mayúsculas.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué opción de grep muestra solo los nombres de los ficheros que coinciden?
2. ¿Qué devuelve el comando grep -Riv a listado.txt?
3. ¿Qué patrón localiza palabras con una 'm' al principio, una 'n' al final y cualquier combinación entre ambas?
4. ¿Qué hace el carácter '.' en una expresión regular de grep?
5. ¿Qué hace el operador > en el ejercicio 38?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.