Hvordan analyserer jeg en YAML -fil i bash?

Hvordan analyserer jeg en YAML -fil i bash?
Det er anledninger når du trenger å analysere filen som YAML eller noen annen fil, fra Bash -skriptene. Bash er en tolk for kommandospråket. På de fleste GNU/Linux -systemer kommer det som standard kommandotolk og er allment tilgjengelig på tvers av en rekke operativsystemer. “Bourne-igjen Shell” er navnets forkortelse. En interaktiv eller ikke-interaktiv instruksjon kan utføres ved hjelp av makroprosessorskallet. Prosessen med å lese YAML -filer i bash vil bli dekket i dette innlegget. Et språk for serialisering av data er yaml. Yaml er ikke markeringsspråk er det rekursive forkortelsen for selve navnet. Det ble opprettet med den hensikt å være brukervennlig, enkel å lese og skrive, og i stand til å representere parametere og datastrukturer, samt integrere godt med nåværende programmeringsspråk.

Hvordan få YAML -biblioteket i bashspråket i Ubuntu 20.04?

Her har vi gitt et eksempel på å analysere YAML -filen ved å bruke Bash Scripting -språket med Ubuntu 20.04 Terminal. Sjekk ut eksemplet med å analysere en YAML -fil i bash -programmeringsspråket nedenfor.

Eksempel 1: Program for å analysere YAML -filen i bash -skriptet i Ubuntu 20.04

Ved hjelp av SED og AWK kan følgende base-analyser analysere enkle YAML-filer. Dette programmet vil lese hvert nøkkel- og verdipar som en bashvariabel, tilordner verdien til den variabelen, og leser deretter neste nøkkel- og verdipar. Personen.YAML -fil som vises nedenfor kommer til å bli analysert i bash -skriptet.

Når vi er i filen til Bash -skriptet, begynner du med Bash Header -delen. Vi har gitt en sti '#!/bin/sh '. Noen av disse tilnærmingene krever en shebang i skriptets overskrift, som i dette tilfellet betyr at skriptet er et skallskript eller bash -skript. Så vær forsiktig med å plassere denne kommandoen i begynnelsen av filen. Manuset blir kjørt ved hjelp av kommandoen og bash -tolken. Selv om det fungerer uten dem, er det nødvendig å skrive Shebang -overskriften. Etter det opprettet vi funksjonen og kalte den parse_yaml (). Inne i denne funksjonen har vi et nøkkelordlokal som indikerer variabelen her. Den eneste kodeblokken som kan se en lokal variabel er den der den ble erklært.

Lokalt "omfang" er til stede. En lokal variabel i en funksjon er bare meningsfull innenfor grensene for funksjonsblokken. Vi har definert den første variabelen som et prefiks og tildelt den $ 2 som noen ganger blir referert til som et posisjonsargument. Her er $ 2 indikert som den andre kommandolinjeparameteren. Deretter har vi to andre lokale variabler 'og' FS '. 'S' brukes til å lese standardinngangen fra bash og 'FS' brukes som separatoren mellom inngangsfeltene mens du bruker vanlig uttrykk.

Etter det må vi distribuere SED og AWK -operasjonen i parse_yaml -funksjonen. Linjeredigereren er ikke interaktiv. Den godtar tekstinngang fra enten STDIN eller en fil, behandler spesifikke linjer i teksten en om gangen, og sender resultatene til stdout eller en fil. SED bruker NE- og E -alternativer. Alternativet -ne viser den første linjen fra inndatafilen. Alternativet -alternativet instruerer SED -programmet til å kjøre følgende kommandolinjeargument som SED. Så kommer AWK-operasjonen som er "datadrevet"; Du beskriver prosessene som skal utføres når dataene du leter etter blir funnet. I tillegg til automatisk å åpne og lukke poster, lese poster, segmentere poster i felt og telle poster er bare noen få av tingene som AWK kan gjøre for deg. Parse_yaml -funksjonen er deretter lukket. Til slutt har vi kommandoen "eval" som følger med Linux eller UNIX. For å kjøre inngangene som en skallkommando på et Linux- eller UNIX -system, må “eval” -kommandoen brukes. "Eval" -kommandoen tar parse_yaml -funksjonen med personen.YAML -fil.

YAML -filens spesifikke data skrives ut ved hjelp av Echo -kommandoen. Vi har utført ovennevnte bashpt for å analysere YAML -filen ved å bruke Bash -kommandoen i Ubuntu 20.04. Utgangen som genereres i skallet har dataene fra YAML -filen i bashformatet.

Eksempel 2: Program for å analysere den komplekse YAML -filen i bash -skriptet i Ubuntu 20.04

Som nevnte eksempel kort demonstrert analysering av YAML -filen. Nå har vi tatt en kompleks YAML -filstruktur for å vise hvordan bash parses denne YAML -filen. Vi prøver også å analysere YAML -fildataene som ikke er til stede i YAML -filen. Følgende er studenten.YAML -filinnhold:


Dette spesielle bashskriptet er det samme som ovennevnte bash -program. Vi har nettopp brukt de forskjellige filene her. Studenten.YAML -fil kommer til å analysere bash. I forrige eksempel har vi skrevet ut feltet en etter en ved å påkalle Echo -kommandoen. Men her har vi nettopp skrevet ut funksjonsnavnet Parse_yaml med studenten.YAML -fil. På den påfølgende snap av Ubuntu 20.04, du kan se resultatene.

Her har vi inkludert en annen funksjon som VERIFY_PARAM () i basisskriptet vårt for å sjekke de eksisterende inngangene. Funksjonen vil sjekke hver inngang i filstudenten.Yaml.

Som vi har gitt inngangen $ student_resultat som ikke eksisterer i studenten.YAML -fil. Ved tolkning av bash -skriptet vises unntaksmeldingen at vi har gitt til Echo -kommandoen i Verify_Param () -funksjonen. Du kan nå bruke den enkle funksjonen til å administrere alle parametrene dine. Du trenger ikke å initialisere hver enkelt hver for seg og verifisere for nullverdier.

Konklusjon

Artikkelen tar sikte på å analysere YAML -filen på et bashskriptspråk som vi har vist deg ved å gi to eksempler. Det første eksemplet på et bash -skript er å vise de valgte dataene fra YAML -filen ved å ringe Echo -kommandoen på den spesifikke inngangen. Det neste eksemplet analyserer hele YAML -filen ved bare å gi en kommando. Videre legger det andre eksemplet til en funksjon til å verifisere parameterverdiene. Det er spesielt nyttig hvis du vil kjøre en operasjon som krever et visst resultat av en YAML -fil.