Bash:
Usando expresiones regulares
Cómo hacerlo:
Coincidencia de Patrones Básica
Para encontrar si una cadena coincide con un patrón, puedes usar grep
, una utilidad de línea de comandos para buscar conjuntos de datos de texto plano por líneas que coincidan con una expresión regular:
echo "¡Hola, Mundo!" | grep -o "Mundo"
# Salida: Mundo
Extracción de Datos Específicos
Para extraer partes de datos que coinciden con tus patrones de regex, puedes usar -o
con grep
:
echo "Error: Archivo no encontrado" | grep -oE "[A-Za-z]+:"
# Salida: Error:
Usando Regex con sed
sed
(editor de flujos) es una utilidad poderosa para analizar y transformar texto. Aquí te mostramos cómo usar sed
con regex para reemplazar texto:
echo "Bash es genial" | sed -e 's/genial/asombroso/'
# Salida: Bash es asombroso
Coincidencia de Patrones en Declaraciones Condicionales
Bash también soporta regex directamente en declaraciones condicionales:
[[ "https://ejemplo.com" =~ ^https?:// ]] && echo "URL es válida" || echo "URL es inválida"
# Salida: URL es válida
Coincidencia y Manipulación de Patrones Avanzados con awk
awk
es otra herramienta de procesamiento de texto que soporta extracción y manipulación de datos más complejas. Puede ser beneficioso cuando se trabaja con datos de texto estructurados, como CSVs:
echo -e "ID,Nombre,Edad\n1,Juan,22\n2,Juana,24" | awk -F, '$3 > 22 {print $2 " es mayor de 22."}'
# Salida: Juana es mayor de 22.
Aunque las funcionalidades de regex integradas en Bash cubren muchos casos de uso, para operaciones de regex muy avanzadas, podrías considerar usar una combinación de scripts de Bash con scripts de perl
o python
, ya que estos lenguajes ofrecen bibliotecas de regex poderosas (por ejemplo, re
en Python). Un ejemplo simple con Python:
echo "Captura esto 123" | python3 -c "import sys; import re; print(re.search('(\d+)', sys.stdin.read()).group(0))"
# Salida: 123
Incorporar estos lenguajes de programación cuando sea necesario puede ayudarte a aprovechar todo el poder de regex en tus scripts de Bash.