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 yq
Lesen eines Wertes aus einer YAML-Datei:
Angenommen, Sie haben eine YAML-Datei config.yaml
mit folgendem Inhalt:
database:
host: localhost
port: 3306
Um den Datenbank-Host zu lesen, würden Sie verwenden:
set host (yq e '.database.host' config.yaml)
echo $host
Beispielausgabe:
localhost
Aktualisieren 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.yaml
Beispielausgabe:
5432
Erstellen 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.yaml
Dies 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.yaml
Beispielausgabe:
server1
server2
Mit yq
macht Fish Shell es unkompliziert, durch YAML-Dokumente zu navigieren und sie für verschiedene Automatisierungs- und Konfigurationsaufgaben zu manipulieren.