Filtros y procesamiento de texto: grep, cut, sort, uniq, wc, sed, awk, tr.
...
Introducción
En esta unidad veremos cómo funcionan Linux ofrece herramientas muy potentes para buscar, filtrar, transformar y analizar texto desde la terminal.
Estos comandos son esenciales para administración de sistemas, análisis de logs y automatización.
grep — Buscar texto dentro de archivos
Permite buscar patrones o palabras.
Sintaxis básica
$ grep "texto" archivo.txt
Ejemplo 1:
$ grep "error" log.txt
Ejemplo 2:
$ grep -r "error" proyecto/
Busca de manera recursiva dentro del directorio proyecto
Opciones frecuentes
- -i → ignora mayúsculas/minúsculas
- -n → muestra número de línea
- -r → búsqueda recursiva
cut — Extraer columnas o campos
Sirve para extraer partes específicas de cada línea.
Sintaxis básica
$ cut -d "delimitador" -f campo archivo.txt
Ejemplo:
$ cut -d ":" -f 1 /etc/passwd
Extrae el primer campo (usuarios). El delimitador sería ":". Devuelve el primer campo.
Opciones frecuentes
- -d Define delimitador
- -f Selecciona campos, 1 sería el primer campo, puede devolver rangos de campos, por ejemplo 1-2
- -c → selecciona caracteres por posición en rango, por ejemplo 1-5 los 5 primeros caracteres.
sort — Ordenar líneas
Ordena texto alfabética o numéricamente.
Ejemplo
$ sort fichero.txt
Opciones frecuentes
- -r → orden inverso
- -n → orden numérico
- -u → hace lo mismo que el comando uniq
uniq — Eliminar duplicados consecutivos
Elimina líneas repetidas (si están juntas).
Ejemplo:
$ sort lista.txt | uniq
Primero ordena luego quita los duplicados
Opciones frecuentes
- -c → pone un prefijo con el número de repeticiones
wc — Contar líneas, palabras y caracteres
Ejemplo
$ wc archivo.txt
Muestra: líneas palabras bytes
Opciones frecuentes
- -l → líneas
- -w → palabras
- -c → caracteres
sed — Editor de flujo de texto
Tiene una salida por pantalla, si queremos guardarlo a disco podríamos hacerlo con una redirección.
Ejemplos
$ sed 's/viejo/nuevo/' archivo.txt
Reemplazar un contenido viejo por otro nuevo
$ sed 's/error/ERROR/g' log.txt
Reemplazar un contenido viejo por otro nuevo, incluso si aparece varias veces en la misma linea
$ sed '2d' archivo.txt
Borra la línea 2, d es de borrar y 2 es la linea
awk — Procesamiento avanzado por columnas
Muy útil para trabajar con campos.
Ejemplos
$ awk '{print $1}' archivo.txt
muestra la primera columna
$ awk -F ":" '{print $1}' /etc/passwd
-F ":" indica que los campos están separados por :
$ awk '{suma += $1} END {print suma}' numeros.txt
Suma las lineas y devuelve un valor.
Si el archivo tiene: 10 20 30
tr — Transformar caracteres
Muy útil para trabajar con campos.
Sintaxis básica
$ comando | tr 'origen' 'destino'
Ejemplos
$ echo "hola mundo" | tr 'a-z' 'A-Z'
convertir a mayúsculas
$ echo "h o l a" | tr -d ' '
eliminar espacios, -d elimina caracteres
$ echo "uno,dos,tres" | tr ',' '-'
cambiar comas por guiones