Syntaks:
arrayName [Key] = VerdiEt 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 'BEGINstudenter ["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
CocktailVaktel
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; nProduksjon:
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
epleoransje
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.