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: MundoExtracció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 asombrosoCoincidencia 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álidaCoincidencia 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: 123Incorporar estos lenguajes de programación cuando sea necesario puede ayudarte a aprovechar todo el poder de regex en tus scripts de Bash.