Syntaks:
ArrayName [Key] = Verdi
Et navn må erklære for matrisevariabelen. 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 assosiativ matrise. Verdi kan være et hvilket som helst tegn, nummer eller streng som vil lagres i den aktuelle indeksen for matrisen.
Eksempel-1: Definere og lese endimensjonal matrise i AWK
En endimensjonal matrise kan lagre en enkeltkolonne-dataliste. Denne typen matriser inneholder en enkelt nøkkel og verdi for hvert matriseelement. Denne matrisen kan brukes i AWK -kommando som andre programmeringsspråk. I dette eksemplet er en matrise som heter 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 'begynn bok ["html"] = "html lomme guide 2010";
bok ["JS"] = "Effektiv JavaScript";
Book ["CSS"] = "Learning Web Design";
Slutt for (jeg i bok) trykk "The Book of", I, "Is", Book [i]; '
Produksjon:
Eksempel-2: Definere og lese todimensjonal matrise i AWK
En todimensjonal matrise brukes til å lagre tabelldataliste som inneholder et fast antall rader og kolonner. Den todimensjonale matrisen som heter studenter er erklært i dette eksemplet som inneholder tre elementer. Her brukes student -ID og navn som nøkkelverdier for matrisen. Som det forrige eksemplet, brukes for-i-loop i AWK-skriptet for å skrive ut verdiene til matrisen. Kjør følgende skript fra terminalen.
$ ekko | awk 'begynn
Studenter ["87462, Mohammed Ali"] = 87;
Studenter ["98376, Sakib Al Hasan"] = 99;
Studenter ["79937, Musfikur Rahman"] = 88;
skriv ut "(id, navn) => merker";
Slutt for (jeg i studenter) trykk "(", i, ") =>", studenter [i]; '
Produksjon:
Eksempel-3: Sletting av arrayelement
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 å bruke slett kommando. Elementverdien av Html Nøkkelen skrives ut før og etter slett kommando. Kjør følgende kommando for å sjekke utdataene.
$ ekko | awk 'begynn bok ["html"] = "html lomme guide 2010";
bok ["JS"] = "Effektiv JavaScript";
bok ["CSS"] = "Learning Web Design";
skriv ut "før slett -", bok ["html"];
slett bok ["html"];
Skriv ut "\ Nafter Delete -", Book ["Html"]; '
Produksjon:
Utgangen viser at verdien av Html Indeksen er tom etter utførelse slett kommando.
Eksempel-4: Reading Bash Array i AWK
I de forrige eksemplene er matrisen erklært i AWK-kommandoen og iterert av for-in loop. Men du kan lese et hvilket som helst Bash -matrise av AWK -manus. I dette eksemplet som er kalt en basray lang er erklært i den første kommandoen. I den andre kommandoen blir Bash -arrayverdiene sendt inn i AWK -kommandoen som lagrer alle elementene i en AWK -matrise som er navngitt Awkarray. Verdiene til Awkarray -matrise skrives ut ved å bruke for loop. Kjør følgende kommando fra terminalen for å sjekke utgangen.
$ lang = ("php" "ASP" "JSP" "C#" "C ++")
$ printf '%s \ n' "$ lang [@]" | awk 'awkarray [nr] = $ 1 slutt for
(Jeg i Awkarray) Skriv ut Awkarray [i], "\ n"; '
Eksempel-5: Les filinnholdet i en AWK-matrise
Innholdet i en hvilken som helst fil kan leses ved å bruke AWK -matrise. Lag en tekstfil som heter 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:
Skriptet skriver ut innholdet i fugl.tekst.
Eksempel-6: Fjern dupliserte oppføringer fra en fil
AWK -skript kan brukes til å fjerne duplikatdata fra hvilken som helst tekstfil. Lag en tekstfil som heter frukt.tekst Med følgende innhold. Det er to duplikatdata 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 gjeldende linje eksisterer eller ikke i matrisen, ARR. Hvis linjen eksisterer i matrisen, vil den ikke lagre linjen i matrisen og vil ikke skrive ut verdien i terminalen. Så skriptet vil bare lagre de unike linjene fra filen i matrisen og skrive ut. Kjør kommandoene fra terminalen.
$ katt frukt.tekst
$ awk '!($ 0 i arr) print arr [$ 0], $ 0; 'Frukt.tekst
Produksjon:
Den første vil skrive ut innholdet i filen, frukt.TXT og den andre kommandoen vil skrive ut innholdet i frukt.txt etter å ha utelatt dupliserte linjer fra filen.
Denne opplæringen viser de forskjellige bruksområdene til matrisen i AWK -skriptet ved å bruke forskjellige eksempler med forklaring. Bash -matrise og ethvert tekstfilinnhold kan også nås ved å bruke AWK -matrise. Hvis du er ny i AWK -programmering, vil denne opplæringen hjelpe deg med å lære bruken av AWK -matrise fra Basic, og du vil kunne bruke matrisen i AWK -skriptet riktig.