Fish Shell:
Lavorare con YAML
Come fare:
Fish Shell non ha un supporto integrato per l’analisi di YAML, ma è possibile utilizzare strumenti di terze parti come yq (un processore YAML da linea di comando leggero e portatile) per gestire i dati YAML.
Installazione di yq (se non già installato):
sudo apt-get install yqLeggere un valore da un file YAML:
Supponiamo di avere un file YAML config.yaml con il seguente contenuto:
database:
host: localhost
port: 3306Per leggere l’host del database, si utilizza:
set host (yq e '.database.host' config.yaml)
echo $hostOutput di esempio:
localhostAggiornare un valore in un file YAML:
Per aggiornare la porta a 5432, usare:
yq e '.database.port = 5432' -i config.yamlVerificare l’aggiornamento:
yq e '.database.port' config.yamlOutput di esempio:
5432Scrivere un nuovo file YAML:
Per creare un nuovo new_config.yaml con contenuto predefinito:
echo "webserver:
host: '127.0.0.1'
port: 8080" | yq e -P - > new_config.yamlQuesto utilizza yq per elaborare e stampare in maniera ordinata (-P flag) una stringa in un nuovo file YAML.
Analizzare strutture complesse: Se si dispone di un file YAML più complesso e si ha bisogno di estrarre array o oggetti annidati, si può:
echo "servers:
- name: server1
ip: 192.168.1.101
- name: server2
ip: 192.168.1.102" > servers.yaml
yq e '.servers[].name' servers.yamlOutput di esempio:
server1
server2Utilizzando yq, Fish Shell rende semplice navigare attraverso documenti YAML e manipolarli per varie attività di automazione e configurazione.