Fish Shell:
Arbeiten mit YAML
Wie:
Fish Shell hat keine eingebaute Unterstützung zum Parsen von YAML, aber man kann Drittanbieter-Tools wie yq (einen leichtgewichtigen und tragbaren Befehlszeilen-YAML-Prozessor) nutzen, um YAML-Daten zu verarbeiten.
Installation von yq (falls nicht bereits installiert):
sudo apt-get install yqLesen eines Wertes aus einer YAML-Datei:
Angenommen, Sie haben eine YAML-Datei config.yaml mit folgendem Inhalt:
database:
host: localhost
port: 3306Um den Datenbank-Host zu lesen, würden Sie verwenden:
set host (yq e '.database.host' config.yaml)
echo $hostBeispielausgabe:
localhostAktualisieren eines Wertes in einer YAML-Datei:
Um den port auf 5432 zu aktualisieren, verwenden Sie:
yq e '.database.port = 5432' -i config.yamlÜberprüfen der Aktualisierung:
yq e '.database.port' config.yamlBeispielausgabe:
5432Erstellen einer neuen YAML-Datei:
Um eine neue new_config.yaml mit vordefiniertem Inhalt zu erstellen:
echo "webserver:
host: '127.0.0.1'
port: 8080" | yq e -P - > new_config.yamlDies verwendet yq, um einen String zu verarbeiten und hübsch zu drucken (-P Flag) in eine neue YAML-Datei.
Parsen komplexer Strukturen: Wenn Sie eine komplexere YAML-Datei haben und verschachtelte Arrays oder Objekte abrufen müssen, können Sie:
echo "servers:
- name: server1
ip: 192.168.1.101
- name: server2
ip: 192.168.1.102" > servers.yaml
yq e '.servers[].name' servers.yamlBeispielausgabe:
server1
server2Mit yq macht Fish Shell es unkompliziert, durch YAML-Dokumente zu navigieren und sie für verschiedene Automatisierungs- und Konfigurationsaufgaben zu manipulieren.