Sintaksė:
arrayName [Key] = reikšmėMasyvo kintamojo vardas turi būti deklaruojamas. arrayName čia yra masyvo pavadinimas. Kiekvienas masyvas turi naudoti trečią skliaustą, kad apibrėžtų Raktas arba indeksas ir tai bus bet kokia asociatyvaus masyvo eilutės reikšmė. Vertė gali būti bet koks simbolis, skaičius ar eilutė, kuri bus saugoma tam tikrame masyvo rodyklėje.
1 pavyzdys: Vienmatės masyvo apibrėžimas ir skaitymas awk
Vienmatis masyvas gali išsaugoti vieno stulpelio duomenų sąrašą. Šio tipo masyve yra vienas raktas ir kiekvieno masyvo elemento vertė. Šis masyvas gali būti naudojamas komandoje awk, kaip ir kitos programavimo kalbos. Šiame pavyzdyje masyvas pavadintas knyga yra deklaruojamas su trimis elementais, o „loop“ naudojamas kiekvienam elementui skaityti ir spausdinti. Paleiskite šią komandą iš terminalo.
$ aidas | awk 'BEGIN book ["HTML"] = "HTML kišenių vadovas 2010";knyga ["JS"] = "Veiksminga" JavaScript ";
knyga ["CSS"] = "Mokytis interneto dizaino";
PABAIGA (i knygoje) spausdinti "The book of", i, "is", book [i]; '
Išvestis:
2 pavyzdys: dviejų matmenų masyvo apibrėžimas ir skaitymas awk
Dvimatis masyvas naudojamas saugoti lentelių duomenų sąrašą, kuriame yra fiksuotas eilučių ir stulpelių skaičius. Dviejų matmenų masyvas, pavadintas studentais, yra deklaruojamas šiame pavyzdyje, kuriame yra trys elementai. Čia studento ID ir vardas naudojami kaip pagrindinės masyvo vertės. Kaip ir ankstesnis pavyzdys, „for-in“ kilpa naudojama „awk“ scenarijuje masyvo reikšmėms spausdinti. Paleiskite šį scenarijų iš terminalo.
$ aidas | awk 'BEGINstudentų ["87462, Mohammedas Ali"] = 87;
studentų ["98376, Sakibas Al Hasanas"] = 99;
studentų ["79937, Musfikur Rahman"] = 88;
spausdinti "(ID, vardas) => Ženklai";
PABAIGA for (i studentams) spausdinti "(", i, ") =>", studentai [i];
Išvestis:
3 pavyzdys: masyvo elemento ištrynimas
Bet kurią masyvo vertę galima ištrinti pagal rakto vertę. Čia, knyga masyvas su trimis elementais yra apibrėžtas scenarijaus pradžioje. Toliau - rakto vertė HTML yra ištrintas naudojant Ištrinti komandą. Elemento vertė HTML raktas spausdinamas prieš ir po Ištrinti komandą. Norėdami patikrinti išvestį, vykdykite šią komandą.
$ aidas | awk 'BEGIN book ["HTML"] = "HTML kišenių vadovas 2010";knyga ["JS"] = "Veiksminga" JavaScript ";
knyga ["CSS"] = "Mokytis interneto dizaino";
spausdinti „Prieš ištrinant -“, knyga [„HTML“];
ištrinti knygą ["HTML"];
spausdinti "\ nPo ištrynimo -", knygą ["HTML"]; '
Išvestis:
Išvestis rodo, kad vertė HTML indeksas tuščias po vykdymo Ištrinti komandą.
4 pavyzdys: „bash“ masyvo skaitymas awk
Ankstesniuose pavyzdžiuose masyvas yra deklaruojamas komandoje awk ir kartojamas pagal for-in ciklą. Bet bet kokį „bash“ masyvą galite perskaityti pagal „awk“ scenarijų. Šiame pavyzdyje - „bash“ masyvas, pavadintas lang yra deklaruojamas pirmoje komandoje. Antroje komandoje „bash“ masyvo reikšmės perkeliamos į komandą „awk“, kurioje visi elementai saugomi į „awk“ masyvą, pavadintą awkArray. Masyvo awkArray reikšmės išspausdinamos naudojant ciklą. Paleiskite šią komandą iš terminalo, kad patikrintumėte išvestį.
$ lang = ("PHP" "ASP" "JSP" "C #" "C ++")$ printf '% s \ n' "$ lang [@]" | awk 'awkArray [NR] = $ 1 END už
(i in awkArray) spausdinti awkArray [i], "\ n";
5 pavyzdys: failo turinio skaitymas į awk masyvą
Bet kurio failo turinį galima perskaityti naudojant awk masyvą. Sukurkite tekstinį failą pavadinimu paukštis.txt su toliau pateiktu turiniu.
paukštis.txt
KokteilisPutpelės
Pilka papūga
Baazigaras
Šis „awk“ scenarijus naudojamas skaityti paukštis.txt failą ir išsaugokite reikšmes masyve, awkArray. for loop naudojama analizuoti masyvą ir spausdinti reikšmes terminale. Paleiskite šį scenarijų iš terminalo.
$ awk 'awkArray [skaitiklis ++] = $ 1; END už (n = 0; nIšvestis:
Scenarijuje atspausdinamas paukštis.txt.
6 pavyzdys: Pasikartojančių įrašų pašalinimas iš failo
„awk“ scenarijus gali būti naudojamas pasikartojantiems duomenims pašalinti iš bet kokio teksto failo. Sukurkite tekstinį failą pavadinimu vaisius.txt turinį. Faile yra du duomenų dublikatai. Šitie yra „Apple“ ir Oranžinė.
vaisius.txt
„Apple“Oranžinė
Vynuogė
„Apple“
Bananas
Oranžinė
Gvajava
Šis „awk“ scenarijus nuskaitys visas teksto failo eilutes, vaisius.txt ir patikrinkite, ar masyve esama eilutė, ar ne, arr. Jei eilutė yra masyve, ji nesaugos eilutės masyve ir nespausdins reikšmės terminale. Taigi scenarijus išsaugos tik unikalias failo eilutes į masyvą ir spausdins. Vykdykite komandas iš terminalo.
$ kačių vaisiai.txt$ awk '!($ 0 in arr) spausdinti arr [$ 0], $ 0; vaisiai.txt
Išvestis:
Pirmasis atspausdins bylos turinį, vaisius.txt ir antroji komanda atspausdins vaisių turinį.txt, praleidus pasikartojančias eilutes iš failo.
Išvada:
Ši pamoka parodo įvairius masyvo „awk“ scenarijaus naudojimo būdus, naudodama skirtingus pavyzdžius su paaiškinimu. „Bash“ masyvą ir bet kokį teksto failo turinį taip pat galima pasiekti naudojant „awk“ masyvą. Jei esate naujas programavimo „awk“ programoje, ši pamoka padės jums išmokti „awk“ masyvo naudojimo iš pagrindinio ir galėsite tinkamai naudoti „masyvą“ „awk“ scenarijuje.