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.