Wie analysiere ich eine YAML -Datei in Bash?

Wie analysiere ich eine YAML -Datei in Bash?
Es gibt Fälle, in denen Sie die Datei wie YAML oder eine andere Datei aus den Bash -Skripten analysieren müssen. Bash ist ein Dolmetscher für die Befehlssprache. Bei den meisten GNU/Linux -Systemen wird der Standardbefehlsinterpreter geliefert und ist in einer Vielzahl von Betriebssystemen weithin zugänglich. "Bourne-On-Shell" ist die Abkürzung des Namens. Eine interaktive oder nicht interaktive Anweisung kann mit der Makroprozessor-Shell ausgeführt werden. Der Prozess des Lesens von YAML -Dateien in Bash wird in diesem Beitrag behandelt. Eine Sprache zum Serialisierungsdaten ist YAML. Yaml ist keine Markup -Sprache ist das rekursive Akronym für den Namen selbst. Es wurde mit der Absicht erstellt, benutzerfreundlich, einfach zu lesen und zu schreiben und Parameter und Datenstrukturen darzustellen sowie gut in aktuelle Programmiersprachen zu integrieren.

Wie man die YAML -Bibliothek in der Bash -Sprache in Ubuntu 20 bekommt.04?

Hier haben wir ein Beispiel dafür gegeben.04 Terminal. Schauen Sie sich das Beispiel für das Parsen einer YAML -Datei in der Bash -Programmiersprache unten an.

Beispiel Nr. 1: Programm zum Parsen der YAML -Datei im Bash -Skript in Ubuntu 20.04

Mit SED und AWK kann der folgende Bash-Parser unkomplizierte YAML-Dateien analysieren. In diesem Programm wird jedes Schlüssel- und Wertpaar als Bash -Variable gelesen, dem Wert dieser Variablen zugewiesen und dann das nächste Schlüssel- und Wertpaar liest. Die Person.Die unten gezeigte YAML -Datei wird im Bash -Skript analysiert.

Beginnen Sie mit dem Abschnitt mit Bash -Header, da wir in der Datei des Bash -Skripts sind. Wir haben einen Weg gegeben '#!/bin/sh '. Einige dieser Ansätze erfordern einen Shebang im Header des Skripts, was in diesem Fall bedeutet, dass das Skript ein Shell -Skript oder ein Bash -Skript ist. Seien Sie also vorsichtig, wenn Sie diesen Befehl am Anfang der Datei platzieren. Das Skript wird mit dem Befehl und dem Bash -Interpreter ausgeführt. Auch wenn es ohne sie funktioniert, ist das Schreiben der Shebang -Header erforderlich. Danach haben wir die Funktion erstellt und sie parse_yaml () genannt. In dieser Funktion haben wir ein Schlüsselwort Lokal, das hier die Variable angibt. Der einzige Codeblock, der eine lokale Variable anzeigen kann.

Lokales „Umfang“ ist vorhanden. Eine lokale Variable in einer Funktion ist nur innerhalb der Grenzen des Funktionsblocks von Bedeutung. Wir haben die erste Variable als Präfix definiert und ihr die $ 2 zugewiesen, die manchmal als Positionsargument bezeichnet wird. Hier wird $ 2 als zweiter Befehlszeilenparameter angegeben. Dann haben wir zwei andere lokale Variablen 'und' FS '. Das "S" wird zum Lesen des Standardeingangs aus der Bash verwendet und "FS" wird als Trennzeichen zwischen Eingangsfeldern verwendet, während der reguläre Ausdruck verwendet wird.

Danach müssen wir die SED- und AWK -Operation in der Parse_yaml -Funktion einsetzen. Der Line -Editor SED ist nicht interaktiv. Es akzeptiert die Texteingaben entweder von STDIN oder einer Datei, verarbeitet bestimmte Zeilen des Textes einzeln und sendet die Ergebnisse an STDOut oder eine Datei. Die SED verwendet NE- und E -Optionen. Die Option -ne zeigt die erste Zeile aus der Eingabedatei an. Die Option -e weist das SED -Programm an, das folgende Befehlszeilenargument als SED auszuführen. Dann kommt der awk-Betrieb, der „datengetrieben“ ist. Sie beschreiben die Prozesse, die durchgeführt werden sollen, wenn die gesuchten Daten gefunden werden. Zusätzlich zum automatischen Öffnen und Schalten von Datensätzen, Lesen von Datensätzen, Segmentieren von Datensätzen in Felder und Zählen von Datensätzen sind nur einige der Dinge, die AWK für Sie tun können. Die Parse_yaml -Funktion wird dann geschlossen. Am Ende haben wir den Befehl "eval", der mit Linux oder Unix geliefert wird. Um die Eingänge als Shell -Befehl auf einem Linux- oder UNIX -System auszuführen, muss der Befehl „eval“ verwendet werden. Der Befehl „eval“ nimmt die Funktion parse_yaml mit der Person auf.YAML -Datei.

Die spezifischen Daten der YAML -Datei werden mit dem Echo -Befehl gedruckt. Wir haben das obige Bash -Skript ausgeführt, um die YAML -Datei mit dem Befehl Bash in Ubuntu 20 zu analysieren.04. Die in der Shell generierte Ausgabe enthält die Daten der YAML -Datei im Bash -Format.

Beispiel Nr. 2: Programm zum Parsen der komplexen YAML -Datei in Bash -Skript in Ubuntu 20.04

Als oben erwähntes Beispiel demonstrierte kurz die Analyse der YAML -Datei. Jetzt haben wir eine komplexe YAML -Dateistruktur genommen, um anzuzeigen, wie Bash diese YAML -Datei analysiert. Außerdem versuchen wir, die YAML -Dateidaten zu analysieren, die in der YAML -Datei nicht vorhanden sind. Das Folgende ist der Schüler.YAML -Dateiinhalt:


Dieses spezielle Bash -Skript entspricht dem obigen Bash -Programm. Wir haben gerade die verschiedenen Dateien hier verwendet. Der Student.Die YAML -Datei wird durch die Bash analysieren. Im vorherigen Beispiel haben wir das Feld nacheinander gedruckt, indem wir den Echo -Befehl aufgerufen haben. Aber hier haben wir gerade den Funktionsnamen Parse_yaml mit dem Schüler gedruckt.YAML -Datei. Auf dem anschließenden Snap von Ubuntu 20.04 können Sie die Ergebnisse anzeigen.

Hier haben wir eine andere Funktion als verify_param () in unser Bash -Skript aufgenommen, um die vorhandenen Eingaben zu überprüfen. Die Funktion überprüft jede Eingabe im Dateistudenten.Yaml.

Wie wir die Input zur Verfügung gestellt haben, $ student_result, die im Schüler nicht existiert.YAML -Datei. Bei der Interpretation des Bash -Skripts wird die Ausnahmebeldung angezeigt, die wir dem Echo -Befehl in der Funktion verify_param () zur Verfügung gestellt haben. Sie können jetzt die einfache Funktion verwenden, um alle Ihre Parameter zu verwalten. Sie müssen nicht jede einzelne initialisieren und für Nullwerte überprüfen.

Abschluss

Der Artikel zielt darauf ab, die YAML -Datei in einer Bash -Skriptsprache zu analysieren, die wir Ihnen gezeigt haben, indem wir zwei Beispiele geben. Das erste Beispiel eines Bash -Skripts besteht darin, die ausgewählten Daten aus der YAML -Datei anzuzeigen, indem Sie den Befehl echo auf der spezifischen Eingabe aufrufen. Das nächste Beispiel analysiert die gesamte YAML -Datei, indem er nur einen Befehl gibt. Darüber hinaus fügt das zweite Beispiel eine weitere Funktion zur Überprüfung der Parameterwerte hinzu. Das ist besonders hilfreich, wenn Sie eine Operation ausführen möchten, die ein bestimmtes Ergebnis aus einer YAML -Datei erfordert.