Bash:
Trabajando con YAML

Cómo:

Trabajar directamente con YAML en Bash requiere un poco de ingenio ya que Bash no tiene soporte incorporado para analizar YAML. Sin embargo, puedes usar herramientas externas como yq (un procesador de YAML de línea de comandos ligero y portátil) para interactuar de manera eficiente con archivos YAML. Repasemos algunas operaciones comunes:

Instalando yq:

Antes de sumergirte en los ejemplos, asegúrate de tener yq instalado. Usualmente puedes instalarlo desde tu gestor de paquetes, por ejemplo, en Ubuntu:

sudo apt-get install yq

O puedes descargarlo directamente de su repositorio de GitHub.

Leyendo un valor:

Considera que tienes un archivo llamado config.yaml con el siguiente contenido:

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secreto

Para leer el host de la base de datos, puedes usar yq de la siguiente manera:

yq e '.database.host' config.yaml

Salida de muestra:

localhost

Actualizando un valor:

Para actualizar el nombre del usuario en config.yaml, usa el comando yq eval con la opción -i (en el lugar):

yq e '.user.name = "newadmin"' -i config.yaml

Verifica el cambio con:

yq e '.user.name' config.yaml

Salida de muestra:

newadmin

Agregando un nuevo elemento:

Para añadir un nuevo elemento bajo la sección de base de datos, como un nuevo campo timeout:

yq e '.database.timeout = 30' -i config.yaml

Revisar el contenido del archivo confirmará la adición.

Eliminando un elemento:

Para eliminar la contraseña bajo usuario:

yq e 'del(.user.password)' -i config.yaml

Esta operación eliminará el campo de contraseña de la configuración.

Recuerda, yq es una herramienta poderosa y tiene muchas más capacidades, incluyendo la conversión de YAML a JSON, la fusión de archivos, y manipulaciones aún más complejas. Consulta la documentación de yq para explorar más a fondo.