Fish Shell:
Trabajando con YAML

Cómo hacerlo:

Fish Shell no tiene soporte integrado para analizar YAML, pero puedes utilizar herramientas de terceros como yq (un procesador de YAML de línea de comandos ligero y portátil) para manejar datos YAML.

Instalación de yq (si aún no está instalado):

sudo apt-get install yq

Leyendo un valor de un archivo YAML: Supongamos que tienes un archivo YAML config.yaml con el siguiente contenido:

database:
  host: localhost
  port: 3306

Para leer el host de la base de datos, usarías:

set host (yq e '.database.host' config.yaml)
echo $host

Salida de ejemplo:

localhost

Actualizando un valor en un archivo YAML: Para actualizar el puerto a 5432, usa:

yq e '.database.port = 5432' -i config.yaml

Verificar la actualización:

yq e '.database.port' config.yaml

Salida de ejemplo:

5432

Escribiendo un nuevo archivo YAML: Para crear un nuevo new_config.yaml con contenido predefinido:

echo "webserver:
  host: '127.0.0.1'
  port: 8080" | yq e -P - > new_config.yaml

Esto utiliza yq para procesar e imprimir de forma bonita (-P flag) una cadena en un nuevo archivo YAML.

Analizando estructuras complejas: Si tienes un archivo YAML más complejo y necesitas buscar matrices o objetos anidados, puedes:

echo "servers:
  - name: server1
    ip: 192.168.1.101
  - name: server2
    ip: 192.168.1.102" > servers.yaml

yq e '.servers[].name' servers.yaml

Salida de ejemplo:

server1
server2

Utilizando yq, Fish Shell hace que sea sencillo navegar a través de documentos YAML y manipularlos para diversas tareas de automatización y configuración.