Syntaks:
arrayName [Key] = VærdiEt navn skal erklæres for arrayvariablen. arrayName er navnet på arrayet her. Hver matrix skal bruge den tredje parentes til at definere nøgle eller indeks og det vil være en hvilken som helst strengværdi for det associerende array. Værdi kan være et hvilket som helst tegn, tal eller streng, der gemmes i det særlige indeks i matrixen.
Eksempel 1: Definition og læsning af et-dimensionelt array i awk
Et endimensionelt array kan gemme en enkelt kolonnedataliste. Denne type array indeholder en enkelt nøgle og værdi for hvert array-element. Denne matrix kan bruges i awk-kommando som andre programmeringssprog. I dette eksempel er en matrix navngivet Bestil erklæres med tre elementer, og for loop bruges til at læse og udskrive hvert element. Kør følgende kommando fra terminalen.
$ ekko | awk 'BEGIN book ["HTML"] = "HTML Pocket Guide 2010";bog ["JS"] = "Effektiv JavaScript";
book ["CSS"] = "Learning Web Design";
SLUT for (i i bog) udskriv "Bogen af", i, "er", bog [i]; '
Produktion:
Eksempel 2: Definition og læsning af todimensionelt array i awk
Et todimensionalt array bruges til at gemme tabelledataliste, der indeholder et fast antal rækker og kolonner. Den to-dimensionelle matrix navngivet studerende er erklæret i dette eksempel, der indeholder tre elementer. Her bruges elev-id og -navn som nøgleværdier i arrayet. Som det foregående eksempel bruges for-in-loop i awk-scriptet til at udskrive værdierne i arrayet. Kør følgende script fra terminalen.
$ ekko | awk 'BEGINstuderende ["87462, Mohammed Ali"] = 87;
studerende ["98376, Sakib Al Hasan"] = 99;
studerende ["79937, Musfikur Rahman"] = 88;
print "(ID, Name) => Marks";
END for (i hos studerende) print "(", i, ") =>", studerende [i]; '
Produktion:
Eksempel 3: Sletning af array-element
Enhver værdi af arrayet kan slettes baseret på nøgleværdien. Her, Bestil array med tre elementer er defineret i begyndelsen af scriptet. Dernæst værdien på nøglen HTML slettes ved hjælp af slet kommando. Elementværdien af HTML nøglen udskrives før og efter slet kommando. Kør følgende kommando for at kontrollere output.
$ ekko | awk 'BEGIN book ["HTML"] = "HTML Pocket Guide 2010";bog ["JS"] = "Effektiv JavaScript";
book ["CSS"] = "Learning Web Design";
udskriv "Før sletning -", bog ["HTML"];
slet bog ["HTML"];
udskriv "\ nEfter Slet -", bog ["HTML"]; '
Produktion:
Outputtet viser, at værdien af HTML indeks er tomt efter udførelse slet kommando.
Eksempel 4: Læsning af bash-array i awk
I de foregående eksempler erklæres matrixen i kommandoen awk og gentages af for-in-loop. Men du kan læse ethvert bash-array ved hjælp af awk-script. I dette eksempel hedder et bash-array lang erklæres i den første kommando. I den anden kommando sendes bash-array-værdierne til kommandoen awk, der gemmer alle elementerne i et navngivet array awkArray. Værdierne for awkArray array udskrives ved hjælp af for loop. Kør følgende kommando fra terminalen for at kontrollere output.
$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 END for
(i i awkArray) udskriv awkArray [i], "\ n"; '
Eksempel 5: Læsning af filindholdet i et awk-array
Indholdet af enhver fil kan læses ved hjælp af awk array. Opret en tekstfil med navnet fugl.txt med indholdet nedenfor.
fugl.txt
CocktailVagtler
Grå papegøje
Baazigar
Følgende awk-script bruges til at læse indholdet af fugl.txt fil og gem værdierne i arrayet, awkArray. for loop bruges til at analysere arrayet og udskrive værdierne i terminalen. Kør følgende script fra terminalen.
$ awk 'awkArray [counter ++] = $ 1; SLUT for (n = 0; nProduktion:
Scriptet udskriver indholdet af fugl.txt.
Eksempel 6: Fjernelse af duplikatposter fra en fil
awk script kan bruges til at fjerne duplikatdata fra enhver tekstfil. Opret en tekstfil med navnet frugt.txt med følgende indhold. Der er to duplikatdata i filen. Disse er Æble og orange.
frugt.txt
Æbleorange
Drue
Æble
Banan
orange
Guava
Det følgende awk-script læser hver linje fra tekstfilen, frugt.txt og kontroller, at den aktuelle linje findes eller ikke er i arrayet, arr. Hvis linjen findes i arrayet, gemmer den ikke linjen i arrayet og udskriver ikke værdien i terminalen. Så scriptet gemmer kun de unikke linjer fra filen i arrayet og udskrives. Kør kommandoerne fra terminalen.
$ kattefrugter.txt$ awk '!($ 0 i arr) print arr [$ 0], $ 0; 'frugter.txt
Produktion:
Den første udskriver indholdet af filen med frugter.txt og den anden kommando udskriver indholdet af frugter.txt efter at udelade duplikatlinjer fra filen.
Konklusion:
Denne tutorial viser de forskellige anvendelser af arrayet i awk-script ved hjælp af forskellige eksempler med forklaring. Bash-array og ethvert tekstfilindhold kan også fås ved hjælp af awk-array. Hvis du er ny inden for awk programmering, vil denne tutorial hjælpe dig med at lære brugen af awk array fra det grundlæggende, og du vil være i stand til at bruge array i awk script korrekt.