Awk

Hvordan bruke array i awk-kommando

Hvordan bruke array i awk-kommando
En arrayvariabel brukes til å lagre mer enn én data. Den støttes av de fleste programmeringsspråk for å lagre flere data. En matrise har to deler. Dette er nøkkelen og verdien. Nøkkel brukes til å få tilgang til plasseringen av verdien. En matrise kan være numerisk og assosiativ. Den numeriske matrisen støtter bare numerisk verdi som nøkkel, og assosiativ matrise støtter både numerisk og indeksverdi som nøkkel. En assosiativ matrise støttes av awk-kommando. Hvordan du kan definere, få tilgang til eller endre den assosiative matrisen i awk-kommandoen, vises i denne veiledningen ved hjelp av forskjellige eksempler.

Syntaks:

arrayName [Key] = Verdi

Et navn må deklarere for arrayvariabelen. arrayName er navnet på matrisen her. Hver matrise må bruke den tredje braketten for å definere nøkkel eller indeks og det vil være hvilken som helst strengverdi for den tilknyttede matrisen. Verdi kan være hvilket som helst tegn, tall eller streng som vil lagres i den spesielle indeksen til matrisen.

Eksempel 1: Definere og lese endimensjonalt array i awk

En endimensjonal matrise kan lagre en enkelt kolonnedataliste. Denne typen matrise inneholder en enkelt nøkkel og verdi for hvert matriseelement.  Denne matrisen kan brukes i awk-kommando som andre programmeringsspråk. I dette eksemplet heter en matrise bok er erklært med tre elementer og for loop brukes til å lese og skrive ut hvert element. Kjør følgende kommando fra terminalen.

$ ekko | awk 'BEGIN book ["HTML"] = "HTML Pocket Guide 2010";
book ["JS"] = "Effektiv JavaScript";
book ["CSS"] = "Læring nettdesign";
SLUTT for (i i bok) trykk "Boken av", jeg, "er", bok [i]; '

Produksjon:

Eksempel 2: Definere og lese todimensjonalt array i awk

En todimensjonal matrise brukes til å lagre tabellformateliste som inneholder et fast antall rader og kolonner. Den todimensjonale matrisen med navnet studenter er erklært i dette eksemplet som inneholder tre elementer. Her brukes student-ID og navn som nøkkelverdier i matrisen. Som i forrige eksempel, brukes for-in-loop i awk-skriptet for å skrive ut verdiene til matrisen. Kjør følgende skript fra terminalen.

$ ekko | awk 'BEGIN
studenter ["87462, Mohammed Ali"] = 87;
studenter ["98376, Sakib Al Hasan"] = 99;
studenter ["79937, Musfikur Rahman"] = 88;
skriv ut "(ID, Name) => Merker";

SLUTT for (i i studenter) trykk "(", i, ") =>", studenter [i]; '

Produksjon:

Eksempel 3: Slette matriseelement

Enhver verdi av matrisen kan slettes basert på nøkkelverdien. Her, bok array med tre elementer er definert i begynnelsen av skriptet. Deretter verdien av nøkkelen HTML blir slettet ved hjelp av slett kommando. Elementverdien av HTML tasten skrives ut før og etter slett kommando. Kjør følgende kommando for å sjekke utdataene.

$ ekko | awk 'BEGIN book ["HTML"] = "HTML Pocket Guide 2010";
book ["JS"] = "Effektiv JavaScript";
book ["CSS"] = "Læring nettdesign";
skriv ut "Before Delete -", book ["HTML"];
slett bok ["HTML"];
skriv ut "\ nEtter Delete -", bok ["HTML"]; '

Produksjon:

Utgangen viser at verdien av HTML indeksen er tom etter kjøring slett kommando.

Eksempel 4: Lesing av bash-array i awk

I de foregående eksemplene blir matrisen erklært i awk-kommandoen og iterert av for-in loop.  Men du kan lese hvilken som helst bash-serie med awk-skript. I dette eksemplet er et bash-utvalg kalt lang blir erklært i den første kommandoen. I den andre kommandoen blir bash-arrayverdiene overført til awk-kommandoen som lagrer alle elementene i en awk-gruppe som heter awkArray. Verdiene til awkArray-arrayet skrives ut ved hjelp av for loop. Kjør følgende kommando fra terminalen for å sjekke utdataene.

$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")
$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 SLUTT for
(i in awkArray) skriv ut awkArray [i], "\ n"; '

Eksempel 5: Lesing av filinnholdet i en ukjent matrise

Innholdet i hvilken som helst fil kan leses ved hjelp av awk array. Lag en tekstfil med navnet fugl.tekst med innholdet gitt nedenfor.

fugl.tekst

Cocktail
Vaktel
Grå papegøye
Baazigar

Følgende awk-skript brukes til å lese innholdet i fugl.tekst fil og lagre verdiene i matrisen, awkArray. for loop brukes til å analysere matrisen og skrive ut verdiene i terminalen. Kjør følgende skript fra terminalen.

$ awk 'awkArray [counter ++] = $ 1; SLUTT for (n = 0; nskriv ut awkArray [n], "\ n"; 'fugl.tekst

Produksjon:

Manuset skriver ut innholdet i fugl.tekst.

Eksempel 6: Fjerning av dupliserte oppføringer fra en fil

awk-skript kan brukes til å fjerne dupliserte data fra hvilken som helst tekstfil. Lag en tekstfil med navnet frukt.tekst med følgende innhold. Det er to dupliserte data i filen. Disse er eple og oransje.

frukt.tekst

eple
oransje
Drue
eple
Banan
oransje
Guava

Følgende awk-skript vil lese hver linje fra tekstfilen, frukt.tekst og sjekk at gjeldende linje finnes eller ikke i matrisen, arr. Hvis linjen finnes i matrisen, vil den ikke lagre linjen i matrisen og vil ikke skrive ut verdien i terminalen. Så, skriptet lagrer bare de unike linjene fra filen i matrisen og skrives ut. Kjør kommandoene fra terminalen.

$ kattfrukt.tekst
$ awk '!($ 0 i arr) print arr [$ 0], $ 0; 'frukt.tekst

Produksjon:

Den første skriver ut innholdet i filen, frukt.txt og den andre kommandoen vil skrive ut innholdet av frukt.txt etter å ha utelatt dupliserte linjer fra filen.

Konklusjon:

Denne opplæringen viser de forskjellige bruksområdene i arrayet i awk-skript ved å bruke forskjellige eksempler med forklaring. Bash array og alt tekstfilinnhold kan også nås ved hjelp av awk array. Hvis du er ny innen awk programmering, vil denne opplæringen hjelpe deg å lære bruken av awk array fra det grunnleggende, og du vil kunne bruke array i awk script riktig.

Mus Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Hvis du finner ut at musemarkøren hopper eller beveger seg alene, automatisk, tilfeldig mens du skriver inn Windows-bærbar PC eller datamaskin, kan no...
Mus Hvordan reversere rulle retning for mus og styreplater i Windows 10
Hvordan reversere rulle retning for mus og styreplater i Windows 10
Mus og Pekeplates gjør ikke bare databehandling enkelt, men mer effektivt og mindre tidkrevende. Vi kan ikke forestille oss et liv uten disse enhetene...
Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...