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

Compresión y empaquetado: tar, gzip, bzip2, xz, zip, tzst

Índice de la sección

Índice del curso