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 yqO 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: secretoPara leer el host de la base de datos, puedes usar yq de la siguiente manera:
yq e '.database.host' config.yamlSalida de muestra:
localhostActualizando 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.yamlVerifica el cambio con:
yq e '.user.name' config.yamlSalida de muestra:
newadminAgregando 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.yamlRevisar 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.yamlEsta 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.