Jak przeanalizować plik YAML w Bash?

Jak przeanalizować plik YAML w Bash?
Są okazje, gdy trzeba przeanalizować plik, tak jak YAML lub jakikolwiek inny plik, z Skryptów Bash. Bash jest tłumaczem języka dowodzenia. W większości systemów GNU/Linux jest dostępny jako domyślny interpreter poleceń i jest szeroko dostępny w różnych systemach operacyjnych. „Bourne-Again Shell” to skrót nazwy. Instrukcja interaktywna lub nieinteraktywna może być wykonywana za pomocą powłoki makro procesora. Proces czytania plików YAML w Bash zostanie omówiony w tym poście. Językiem serializacji danych jest YAML. Yaml Ain't Marka języka jest rekurencyjnym akronimem dla samej nazwy. Został stworzony z zamiarem bycia przyjaznym dla użytkownika, prostego do odczytu i pisania oraz zdolnego do reprezentowania parametrów i struktur danych, a także dobrze integracji z bieżącymi językami programowania.

Jak zdobyć bibliotekę Yaml w języku Bash w Ubuntu 20.04?

Tutaj podaliśmy przykład analizowania pliku YAML za pomocą języka skryptowego Bash z Ubuntu 20.04 Terminal. Sprawdź przykład analizowania pliku YAML w języku programowania Bash poniżej.

Przykład nr 1: Program analizowania pliku YAML w skrypcie Bash w Ubuntu 20.04

Za pomocą SED i AWK następujący parser tylko Bash może analizować proste pliki YAML. Ten program odczytuje każdy klucz i parę wartości jako zmienną bash, przypisuje wartość do tej zmiennej, a następnie odczytuje następną parę klucza i wartości. Osoba.Plik YAML pokazany poniżej zostanie przeanalizowany w skrypcie Bash.

Jak jesteśmy w pliku skryptu Bash, zacznij od sekcji nagłówka Bash. Podaliśmy ścieżkę '#!/bin/sh '. Niektóre z tych podejść wymagają shebang w nagłówka. Uważaj więc na umieszczanie tego polecenia na początku pliku. Skrypt zostanie uruchomiony za pomocą polecenia i interpretera bash. Nawet jeśli działa bez nich, wymagane jest pisanie nagłówka Shebang. Następnie stworzyliśmy funkcję i nazwaliśmy ją parse_yaml (). Wewnątrz tej funkcji mamy lokalne słowo kluczowe, które wskazuje tutaj zmienną. Jedynym blokiem kodu, który może wyświetlić zmienną lokalną, jest ten, w którym została zadeklarowana.

Obecny jest lokalny „zakres”. Lokalna zmienna w funkcji ma jedynie znaczenie w granicach bloku funkcyjnego. Zdefiniowaliśmy pierwszą zmienną jako prefiks i przypisaliśmy ją 2 USD, która jest czasem określana jako argument pozycyjny. Tutaj 2 USD jest wskazane jako drugi parametr wiersza poleceń. Następnie mamy dwie inne zmienne lokalne „s” i „fs”. „S” jest używany do odczytu standardowego wejścia z bash i „FS” jest wykorzystywany jako separator między pól wejściowych, przy użyciu wyrażenia regularnego.

Następnie musimy wdrożyć działalność SED i AWK w funkcji parse_yaml. Edytor liniowy SED nie jest interaktywny. Akceptuje wejście tekstowe ze stdin lub pliku, przetwarza określone wiersze tekstu pojedynczo i wysyła wyniki do stdout lub pliku. SED używa opcji NE i E. Opcja -ne wyświetla pierwszy wiersz z pliku wejściowego. Opcja -e instruuje program SED, aby uruchomił następujący argument wiersza poleceń jako SED. Następnie przyjdź operację AWK, która jest „oparta na danych”; Opisujesz procesy, które należy przeprowadzić, gdy znaleziono dane, których szukasz. Oprócz automatycznego otwierania i zamykania rekordów, czytania rekordów, segmentacji rekordów na pola i liczenia rekordów to tylko kilka rzeczy, które AWK może dla Ciebie zrobić. Funkcja parse_yaml jest następnie zamykana. Ostatecznie mamy polecenie „Eval”, które jest dostarczane z Linux lub UNIX. Aby uruchomić dane wejściowe jako polecenie powłoki w systemie Linux lub UNIX, należy użyć polecenia „Eval”. Komenda „Eval” podejmuje funkcję parse_yaml z osobą.plik YAML.

Dane specyficzne pliku YAML są drukowane za pomocą polecenia Echo. Wykonaliśmy powyższy skrypt bash do analizowania pliku YAML za pomocą polecenia bash w Ubuntu 20.04. Wyjście wygenerowane w powładzie ma dane z pliku YAML w formacie Bash.

Przykład nr 2: Program analizowania złożonego pliku YAML w skrypcie Bash w Ubuntu 20.04

Jak wspomniany przykład krótko pokazał parsowanie pliku YAML. Teraz wzięliśmy złożoną strukturę pliku YAML, aby pokazać, jak Bash analizuje ten plik YAML. Ponadto staramy się przeanalizować dane pliku YAML, które nie są obecne w pliku YAML. Poniżej znajduje się uczeń.Treść pliku YAML:


Ten konkretny skrypt bash jest taki sam jak powyższy program Bash. Właśnie użyliśmy różnych plików tutaj. Uczeń.plik YAML będzie parsować przez bash. W poprzednim przykładzie wydrukowaliśmy pole jeden po drugim, wywołując polecenie Echo. Ale tutaj właśnie wydrukowaliśmy nazwę funkcji parse_yaml z uczniem.Plik YAML. Na późniejszym planie Ubuntu 20.04, możesz wyświetlić wyniki.

Tutaj zawarliśmy inną funkcję jako Verify_param () w naszym skrypcie Bash, aby sprawdzić istniejące dane wejściowe. Funkcja sprawdzi każde wejście do studenta pliku.Yaml.

Jak zapewniliśmy wejście $ student_result, które nie istnieje u ucznia.plik YAML. Po interpretacji skryptu Bash pokazano komunikat wyjątku, który podaliśmy do polecenia Echo w funkcji Verify_param (). Możesz teraz użyć prostej funkcji, aby zarządzać wszystkimi parametrami. Nie musisz inicjować każdego z nich osobno i weryfikować wartości zerowych.

Wniosek

Artykuł ma na celu przeanalizowanie pliku YAML w języku scenariuszy Bash, który pokazaliśmy, podając dwa przykłady. Pierwszym przykładem skryptu BASH jest wyświetlenie wybranych danych z pliku YAML poprzez wywołanie polecenia ECHO na określonym wejściu. Następny przykład analizuje cały plik YAML, podając tylko jedno polecenie. Ponadto drugi przykład dodaje jeszcze jedną funkcję weryfikacji wartości parametrów. Jest to szczególnie pomocne, jeśli chcesz przeprowadzić operację, która wymaga określonego wyniku z pliku YAML.