Come faccio a analizzare un file yaml in bash?

Come faccio a analizzare un file yaml in bash?
Ci sono occasioni in cui è necessario analizzare il file come Yaml o qualsiasi altro file, dall'interno degli script bash. Bash è un interprete per la lingua di comando. Sulla maggior parte dei sistemi GNU/Linux, si presenta come interprete di comando predefinito ed è ampiamente accessibile in una varietà di sistemi operativi. "Bourne-Again Shell" è l'abbreviazione del nome. Un'istruzione interattiva o non interattiva può essere eseguita utilizzando la shell del processore macro. Il processo di lettura dei file YAML in bash sarà trattato in questo post. Una lingua per la serializzazione dei dati è YAML. Yaml Ain't Markup Language è l'acronimo ricorsivo per il nome stesso. È stato creato con l'intento di essere intuitivo, semplice da leggere e scrivere e in grado di rappresentare parametri e strutture di dati, nonché integrarsi bene con gli attuali linguaggi di programmazione.

Come ottenere la biblioteca Yaml nel linguaggio bash in Ubuntu 20.04?

Qui, abbiamo dato un esempio di analizzazione del file Yaml usando il linguaggio di script bash con Ubuntu 20.04 Terminale. Dai un'occhiata all'esempio di analisi di un file YAML nel linguaggio di programmazione bash di seguito.

Esempio n. 1: programma di analisi del file Yaml in Bash Script in Ubuntu 20.04

Usando sed e awk, il seguente parser solo bash può analizzare i file YAML semplici. Questo programma leggerà ciascuna coppia di tasti e valori come variabile BASH, assegna il valore a quella variabile, quindi legge il tasto successivo e la coppia di valori. La persona.Il file Yaml mostrato di seguito verrà analizzato nello script bash.

Dato che siamo nel file dello script bash, inizia con la sezione intestazione bash. Abbiamo dato un percorso '#!/bin/sh '. Alcuni di questi approcci richiedono uno shebang nell'intestazione dello script, che in questo caso significa che lo script è uno script di shell o uno script bash. Quindi, fai attenzione a posizionare questo comando all'inizio del file. Lo script verrà eseguito utilizzando il comando e l'interprete Bash. Anche se funziona senza di loro, è richiesto scrivere l'intestazione di shebang. Successivamente, abbiamo creato la funzione e denominato parse_yaml (). All'interno di quella funzione, abbiamo una parola chiave locale che indica la variabile qui. L'unico blocco di codice che può visualizzare una variabile locale è quello in cui è stato dichiarato.

È presente "portata" locale. Una variabile locale in una funzione è significativa solo all'interno dei confini del blocco funzione. Abbiamo definito la prima variabile come un prefisso e assegnato a $ 2 che a volte viene definito argomento posizionale. Qui, $ 2 è indicato come secondo parametro della riga di comando. Quindi, abbiamo altre due variabili locali "e" FS ". La "S" viene utilizzata per leggere l'input standard da Bash e "FS" viene utilizzato come separatore tra i campi di input mentre si utilizzano un'espressione regolare.

Successivamente, dobbiamo distribuire l'operazione SED e AWK nella funzione Parse_yaml. L'editor di linee sed non è interattivo. Accetta l'input di testo da stdin o da un file, elabora le righe specifiche di quella di testo alla volta e invia i risultati a stdout o un file. Il SED utilizza le opzioni NE ed E. L'opzione -ne visualizza la prima riga dal file di input. L'opzione -e indica al programma SED di eseguire il seguente argomento di comando come SED. Quindi, arriva l'operazione AWK che è "guidata dai dati"; Descrivi i processi da eseguire quando vengono trovati i dati che stai cercando. Oltre ad aprire e interrompere automaticamente i record, leggere record, segmentare i record in campi e contattare i record sono solo alcune delle cose che AWK può fare per te. La funzione Parse_yaml viene quindi chiusa. Alla fine, abbiamo il comando "Eval" fornito con Linux o Unix. Per eseguire gli ingressi come comando shell su un sistema Linux o Unix, è necessario utilizzare il comando "Eval". Il comando "Eval" prende la funzione Parse_yaml con la persona.file yaml.

I dati specifici del file YAML vengono stampati utilizzando il comando Echo. Abbiamo eseguito lo script bash sopra per analizzare il file yaml utilizzando il comando bash in ubuntu 20.04. L'output generato nella shell ha i dati del file YAML nel formato bash.

Esempio n. 2: programma di analisi del complesso file YAML in Bash Script in Ubuntu 20.04

Come esempio di cui sopra ha dimostrato brevemente l'analisi del file YAML. Ora, abbiamo preso una complessa struttura di file Yaml per mostrare come bash analizza questo file YAML. Inoltre, stiamo cercando di analizzare i dati del file YAML che non sono presenti nel file YAML. Quello che segue è lo studente.Contenuto del file Yaml:


Questo particolare script bash è lo stesso del programma di bash sopra. Abbiamo appena usato i diversi file qui. Lo studente.Il file Yaml sta per analizzare il bash. Nell'esempio precedente, abbiamo stampato il campo uno per uno invocando il comando Echo. Ma qui, abbiamo appena stampato il nome della funzione parse_yaml con lo studente.File yaml. Sul successivo scatto di Ubuntu 20.04, puoi visualizzare i risultati.

Qui, abbiamo incluso un'altra funzione come Verify_param () nel nostro script bash per controllare gli input esistenti. La funzione controllerà ogni input nello studente di file.Yaml.

Come abbiamo fornito l'input $ Student_result che non esiste nello studente.file yaml. Dopo l'interpretazione dello script bash, viene mostrato il messaggio di eccezione che abbiamo fornito al comando Echo nella funzione Verify_param (). Ora puoi usare la funzione semplice per gestire tutti i tuoi parametri. Non è necessario inizializzare ciascuno di essi separatamente e verificare i valori null.

Conclusione

L'articolo mira a analizzare il file yaml in un linguaggio di scripting bash che ti abbiamo mostrato dando due esempi. Il primo esempio di uno script bash è mostrare i dati selezionati dal file YAML chiamando il comando Echo sull'input specifico. Il prossimo esempio analizza l'intero file YAML dando solo un comando. Inoltre, il secondo esempio aggiunge un'altra funzione per verificare i valori dei parametri. Ciò è particolarmente utile se si desidera eseguire un'operazione che richiede un certo risultato da un file YAML.