Curso sobre comandos de linux

📥 Preparación del entorno

1️⃣ Descargar El Quijote desde Gutenberg

1wget https://www.gutenberg.org/files/2000/2000-0.txt -O quijote.txt

2️⃣ Comprobar contenido

1less quijote.txt

📌 MÓDULO 1 — grep básico (sin regex)

🔹 ¿Qué es grep?

grep busca líneas que contienen un texto patrón.

1grep "Quijote" quijote.txt

👉 Muestra todas las líneas donde aparece la palabra Quijote.


🔹 Ignorar mayúsculas/minúsculas

1grep -i "quijote" quijote.txt

🔹 Contar ocurrencias

1grep -c "Quijote" quijote.txt

🔹 Mostrar número de línea

1grep -n "Sancho" quijote.txt

🧠 Ejemplos

  1. Busca líneas con la palabra caballero
1grep "caballero" quijote.txt
  1. Cuenta cuántas veces aparece Dulcinea
1grep -c "Dulcinea" quijote.txt
  1. Busca Rocinante ignorando mayúsculas
1grep -i "rocinante" quijote.txt

📌 MÓDULO 2 — Regex básicos

Activamos regex extendidas con -E

1grep -E "patrón" archivo

🔹 El punto .

Coincide con cualquier carácter

1grep -E "Don.Q" quijote.txt

✔ Coincide con Don Quijote, Don-Quijote, etc.


🔹 Clases de caracteres []

1grep -E "c[ao]sa" quijote.txt

✔ Coincide con casa y cosa


🔹 Rangos

1grep -E "[A-Z][a-z]+" quijote.txt

✔ Palabras que empiezan por mayúscula


🧠 Ejemplos

  1. Busca palabras que empiecen por Q mayúscula
1grep -E "\bQ[a-zA-Z]*\b" quijote.txt
  1. Busca Sancho seguido de cualquier carácter
1grep -E "Sancho." quijote.txt
  1. Encuentra palabras que contengan ll
1grep -E "\b[a-zA-Z]*ll[a-zA-Z]*\b" quijote.txt

📌 MÓDULO 3 — Cuantificadores

🔹 * (0 o más)

1grep -E "sanch.*" quijote.txt

🔹 + (1 o más)

1grep -E "ll+" quijote.txt

ll, lll, etc.


🔹 ? (0 o 1)

1grep -E "caballer?o" quijote.txt

caballero / caballeroo


🔹 {n,m}

1grep -E "[0-9]{4}" quijote.txt

✔ Números de 4 cifras


🧠 Ejemplos

  1. Busca palabras con 3 letras iguales seguidas
1grep -E "\b([a-zA-Z])\1\1\b" quijote.txt
  1. Encuentra números de 2 o 3 cifras
1grep -E "\b[0-9]{2,3}\b" quijote.txt
  1. Busca palabras con rr
1grep -E "\b[a-zA-Z]*rr[a-zA-Z]*\b" quijote.txt

📌 MÓDULO 4 — Anclas

🔹 Inicio de línea ^

1grep -E "^Capítulo" quijote.txt

🔹 Final de línea $

1grep -E "fin.$" quijote.txt

🧠 Ejemplos

  1. Líneas que empiezan por Don
1grep -E "^Don" quijote.txt
  1. Líneas que terminan en punto
1grep -E "\.$" quijote.txt
  1. Líneas vacías:
1grep -E "^$" quijote.txt

📌 MÓDULO 5 — Palabras completas

🔹 Límite de palabra \b

1grep -E "\bpan\b" quijote.txt

✔ No coincide con panza


🧠 Ejercicios

  1. Busca la palabra exacta rey
1grep -E "\brey\b" quijote.txt

📌 MÓDULO 6 — Alternativas y grupos

🔹 Alternativa |

1grep -E "Sancho|Quijote" quijote.txt

🔹 Grupos ()

1grep -E "(Don|San) [A-Z][a-z]+" quijote.txt

Don Quijote, San Pedro, etc.


🧠 Ejercicios

  1. Busca Don o Doña
1grep -E "\b(Don|Doña)\b" quijote.txt
  1. Busca nombres propios
1grep -E "\b[A-Z][a-záéíóúñ]{2,}\b" quijote.txt

📌 MÓDULO 7 — Filtrado avanzado

🔹 Excluir líneas

1grep -v "Quijote" quijote.txt

🔹 Encadenar con | (pipes)

1grep -i "sancho" quijote.txt | grep -i "panza"

🔹 Contar patrones complejos

1grep -Eo "\b[A-Z][a-z]{5,}\b" quijote.txt | wc -l

📌 MÓDULO 8 — Ejemplos

📝 Ejercicio 1

Mostrar líneas que empiezan por mayúscula y terminan en punto

1grep -E "^[A-Z].*\.$" quijote.txt

📝 Ejercicio 2

Encontrar palabras de más de 10 letras

1grep -Eo "\b[a-zA-Z]{10,}\b" quijote.txt

📝 Ejercicio 3

Contar cuántas veces aparece un nombre propio

1grep -Eo "\bSancho\b" quijote.txt | wc -l