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.