Fish Shell:
Usando expresiones regulares

Cómo hacerlo:

Aunque Fish Shell en sí no tiene un comando incorporado para regex, utiliza efectivamente comandos externos como grep, sed y awk que admiten regex, lo que te permite incorporar operaciones regex en tus scripts.

Coincidencia de Patrones Básicos con grep

Buscar líneas en un archivo que coincidan con un patrón:

grep '^[0-9]+' myfile.txt

Este comando encuentra líneas que comienzan con uno o más dígitos en myfile.txt.

Extrayendo y Reemplazando con sed

Extrae números de teléfono de un archivo:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

Reemplaza todas las ocurrencias de “foo” con “bar” en data.txt:

sed 's/foo/bar/g' data.txt

Usando string para Regex Básicos

El comando string de Fish Shell admite operaciones simples de regex como coincidencia y reemplazo:

Coincidir un patrón en una cadena:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

Salida:

3.1.2

Reemplazar dígitos siguientes a ‘fish’ con ‘X.X.X’:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

Salida:

Welcome to fish X.X.X

Coincidencia Avanzada con awk

Imprimir la segunda columna de datos donde la primera columna coincide con un patrón específico:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

Este comando busca líneas en datafile donde la primera columna comienza con una “a” seguida de uno o más dígitos e imprime la segunda columna.

Al integrar estos comandos externos, los programadores de Fish Shell pueden aprovechar toda la potencia de las expresiones regulares para tareas complejas de manipulación de texto, mejorando las capacidades nativas de la shell.