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.txtEste 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.txtReemplaza todas las ocurrencias de “foo” con “bar” en data.txt:
sed 's/foo/bar/g' data.txtUsando 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.2Reemplazar 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.XCoincidencia 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}' datafileEste 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.