Bash:
Praca z YAML

Jak to zrobić:

Bezpośrednia praca z YAML w Bashu wymaga nieco pomysłowości, ponieważ Bash nie ma wbudowanego wsparcia dla parsowania YAML. Jednak możesz użyć zewnętrznych narzędzi, takich jak yq (lekkie i przenośne narzędzie do wiersza poleceń dla YAML), aby efektywnie współdziałać z plikami YAML. Przejdźmy przez kilka typowych operacji:

Instalacja yq:

Zanim zagłębimy się w przykłady, upewnij się, że masz zainstalowany yq. Zwykle możesz go zainstalować z menedżera pakietów, na przykład na Ubuntu:

sudo apt-get install yq

Lub możesz pobrać go bezpośrednio z repozytorium GitHub.

Odczytywanie wartości:

Załóżmy, że masz plik o nazwie config.yaml z następującą zawartością:

database:
  host: localhost
  port: 5432
user:
  name: admin
  password: secret

Aby odczytać hosta bazy danych, możesz użyć yq w następujący sposób:

yq e '.database.host' config.yaml

Przykładowy wynik:

localhost

Aktualizowanie wartości:

Aby zaktualizować nazwę użytkownika w config.yaml, użyj polecenia yq eval z opcją -i (in-place):

yq e '.user.name = "newadmin"' -i config.yaml

Zweryfikuj zmianę za pomocą:

yq e '.user.name' config.yaml

Przykładowy wynik:

newadmin

Dodawanie nowego elementu:

Aby dodać nowy element w sekcji bazy danych, jak nowe pole timeout:

yq e '.database.timeout = 30' -i config.yaml

Sprawdzenie zawartości pliku potwierdzi dodanie.

Usuwanie elementu:

Aby usunąć hasło użytkownika:

yq e 'del(.user.password)' -i config.yaml

Ta operacja usunie pole hasła z konfiguracji.

Pamiętaj, yq jest potężnym narzędziem i ma wiele więcej możliwości, w tym konwersję YAML na JSON, łączenie plików i nawet bardziej złożone manipulacje. Zapoznaj się z dokumentacją yq dla dalszych poszukiwań.