Inicio > Cursos > Linux & Terminal > grep, awk y sed
Linux & TerminalProcesamiento de Texto y DatosLección 6 de 12

grep, awk y sed

grep, awk y sed son las tres herramientas mas importantes para procesar texto en la terminal. Con ellas puedes buscar, filtrar, transformar y manipular datos sin abrir ningun editor.

# GREP: buscar texto en archivos

# Buscar una palabra en un archivo
grep "error" /var/log/syslog

# -i: ignorar mayusculas/minusculas
grep -i "warning" app.log

# -r: buscar recursivamente en directorios
grep -r "TODO" src/
# src/app.js:  // TODO: agregar validacion
# src/db.js:   // TODO: implementar cache

# -n: mostrar numero de linea
grep -n "function" app.js
# 12: function conectarDB() {
# 45: function validarUsuario(email) {

# -c: contar coincidencias
grep -c "ERROR" server.log
# 23

# -v: invertir (mostrar lineas que NO coinciden)
grep -v "^#" config.conf
# Muestra config sin comentarios

# -l: solo mostrar nombres de archivos
grep -rl "password" .
# ./src/config.js
# ./.env
# AWK: procesar texto por columnas/campos

# Estructura: awk '{accion}' archivo
# $1=primera columna, $2=segunda, $NF=ultima

# Mostrar solo la primera columna
df -h | awk '{print $1}'

# Mostrar columnas especificas (espacio, usuario)
ls -la | awk '{print $5, $9}'
# 4096 src
# 1234 package.json

# Filtrar por condicion
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
# Usuarios con UID >= 1000 (usuarios humanos)

# Sumar una columna
awk '{sum += $5} END {print "Total:", sum}' datos.txt
# Total: 15234

# Cambiar separador de campos (-F)
awk -F"," '{print $1, $3}' datos.csv
# nombre edad
# Juan 25
# Maria 30
# SED: buscar y reemplazar texto (Stream EDitor)

# Reemplazar primera ocurrencia por linea
sed 's/foo/bar/' archivo.txt

# Reemplazar TODAS las ocurrencias (flag g)
sed 's/http/https/g' urls.txt

# -i: editar el archivo directamente (in-place)
sed -i 's/localhost/produccion.com/g' config.js

# Eliminar lineas que contienen un patron
sed '/^#/d' config.conf > config_limpio.conf
# Elimina comentarios

# Eliminar lineas vacias
sed '/^$/d' archivo.txt

# COMBINANDO con pipes
cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -rn
# 45 /api/usuarios
# 23 /images/logo.png
# 12 /old-page
# Encuentra las URLs con mas errores 404
ConsejoTip profesional: usa grep para encontrar, awk para extraer columnas y sed para reemplazar. Combinados con pipes se convierten en un motor de procesamiento de datos.
← Pipes y RedireccionExpresiones Regulares en la Terminal →

Practica esta lección

Resuelve los ejercicios del curso de Linux & Terminal en la app, gratis y con corrección automática.

Empezar a practicar