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.
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