Sintaksė:
- kilpos deklaracijai:
pareiškimus
Pirmoji dalis naudojama inicijuojant kintamąjį paleidimui dėl kilpa. Antroje dalyje yra nutraukimo sąlyga, skirta valdyti kilpos iteraciją, ir ciklas tęsis tol, kol sąlyga bus teisinga. Paskutinė dalis padidins arba sumažins inicializavimo kintamąjį pagal pirmąją dalį.
- deklaracija
pareiškimus
for-in ciklas naudojamas toms užduotims atlikti, kur kilpos iteracijos skaičius nėra fiksuotas. for-in ciklas daugiausia naudojamas analizuoti masyvą ar duomenų sąrašą. Kilpa nuskaito visus duomenis iš masyvo ar sąrašo ir išsaugo vertę kintamajam kiekvienoje iteracijoje.
1 pavyzdys: paprasto ciklo naudojimas
Šiame cikle naudojamas paprastas ciklas. Čia, skaitiklis kintamasis inicijuojamas 10 ir ciklas baigsis, kai reikšmė skaitiklis yra mažesnis nei 5. Scenarijus atspausdins skaitiklis vertės nuo 10 iki 5. Vykdykite komandą iš terminalo.
$ aidas | awk 'už (skaitiklis = 10; skaitiklis> = 5; skaitiklis--)spausdinti „Bėga“, skaitiklis, kartus."," \ n "; '
Išvestis:
Vykdant komandą pasirodys toks išvestis.
2 pavyzdys: masyvo skaitymas naudojant „for-in“ kilpą
Masyvas, pavadintas Klientas, yra deklaruojamas šiame scenarijuje, kur klientas id yra nustatytas kaip masyvo indeksas ir kliento vardas yra nustatyta kaip masyvo reikšmė. for-in ciklas naudojamas kartoti kiekvieną indeksą iš masyvo ir atspausdinti kliento vardą. Paleiskite scenarijų iš terminalo.
$ aidas | awk 'BEGIN Klientas ["4587"] = "Neil Johnson";Klientas ["8953"] = "Ella binte Nazir";
Klientas ["3455"] = "Bruce'as Hyslopas";
Klientas ["6335"] = "Isabella";
END for (i kliente)
spausdinti „Pavadinimas“, i, „yra“, Klientas [i]
Išvestis:
Vykdant scenarijų bus rodoma ši išvestis.
3 pavyzdys: „Lested“ naudojimas kilpai
Kai „for“ kilpa yra deklaruojama pagal kitą „loop“, tada ji vadinama įdėta „loop“. Šiame scenarijuje naudojama išorinė kilpa kartosis 2 kartus, o vidinė - 3 kartus. Taigi, atspausdinta ataskaita bus vykdoma (2X3 = 6) 6 kartus. Paleiskite scenarijų iš terminalo.
$ aidas | awk 'END for (i = 1; i<=2; i++)už (j = 1; j<=3; j++)
spausdinti „kartojanti eilutė“, i, „ir stulpelis“, j, „\ n"; '
Išvestis:
Ši išvestis pasirodys paleidus scenarijų.
4 pavyzdys: Naudojimas kilpai su pertraukos sakiniu
pertrauka sakinys naudojamas bet kurioje cikle, norint užbaigti kilpą prieš pasiekiant nutraukimo sąlygą pagal konkrečią sąlygą. Šiame scenarijuje ciklo pradžia bus nuo 3 ir jis baigsis, kai reikšmė i yra didesnis nei 20. Bet kai vertė i bus lygus kintamajam skaičius tada if sąlyga bus teisinga, o ciklas nutrūks pertrauka pareiškimas.
$ aidas | awk 'PRADŽIA num = 7; END už (i = 3; i<=20; i++)jei (i == skaičius) pertrauka;
Kitas
spausdinti „Dabartinė i = reikšmė“, i, „\ n“; '
Išvestis:
Čia, jei keturių pakartojimų sąlyga yra klaidinga, kai reikšmė i yra 3,4,5 ir 6. Taigi, išvestis spausdinama keturiems kartojimams.
5 pavyzdys: Naudojimas ciklui su tęsiniu
Tęsti sakinys naudojamas bet kurioje cikle, norint praleisti bet kurį teiginį, pagrįstą konkrečia sąlyga. Masyvas pavadintas produktas yra deklaruojamas tokiu scenarijumi. for-in kilpa naudojama kartojant masyvą ir tikrinant kiekvieną reikšmęBiuro programinė įranga„. Jei vertė sutampa, bus spausdinamas neprieinamas pranešimas, praleidžiant turimą pranešimą tęsti sakinį, kitaip bus spausdinamas neprieinamas pranešimas. Paleiskite scenarijų iš terminalo.
$ aidas | awk 'BEGIN produktas ["1001"] = "Antivirusas";produktas ["1002"] = "Biuro programinė įranga";
produktas ["1003"] = "Piešimo programinė įranga";
produktas ["1004"] = "HDD";
product ["1005"] = "DVD"; END for (i in product)
jei (produktas [i] == „Biuro programinė įranga“)
spausdinti produktą [i], "nėra \ n";
Tęsti;
spausdinimo produktas [i], "yra", "\ n"; '
Išvestis:
Ši išvestis pasirodys paleidus scenarijų.
6 pavyzdys: ciklo naudojimas awk faile
Sukurkite tekstinį failą pavadinimu pardavimai.txt ir pridėkite šį turinį, kad praktikuotumėte šį pavyzdį.
pardavimai.txt
2015 700002016 80000
2017 m. 83000 m
2018 86000
2019 90000
Sukurkite awk failą pavadinimu cal_sal.awk naudodami šį scenarijų apskaičiuokite bendrą failo pardavimo sumą pardavimai.txt. Antrajame lauke nurodoma metinė pardavimo suma byloje pardavimai.txt. Scenarijuje, pardavimai masyvas išsaugos visas antrojo lauko reikšmes ir suma kintamasis inicijuojamas 0, kad būtų pridėtos visos reikšmės pardavimai masyvas. Kitas, for-in kilpa naudojama kartojant kiekvieną elementą pardavimai masyvas ir pridėkite reikšmę su suma kintamasis. Galiausiai spausdinti ataskaitą naudojama atspausdinti reikšmę suma kintamasis rodyti bendrą pardavimo sumą.
cal_sal.awk
pardavimai [i ++] = 2 USD;
suma = 0;
GALAS
už (aš pardavime)
suma = suma + pardavimai [i];
atspausdinti "Bendra pardavimo suma =" suma;
Vykdykite šią komandą, kad įvykdytumėte „cal_sal“ scenarijų.AWK failas.
$ awk -f cal_sal.awk pardavimai.txtIšvestis:
Yra 5 įrašai pardavimai.txt failą ir pardavimo sumos suma yra 409000, kuri atspausdinama įvykdžius scenarijų.
Išvada:
Šioje pamokoje bandoma paaiškinti skirtingus „loop in awk“ komandos naudojimo būdus. Tikiuosi, kad skaitytojas gaus aiškią idėją, kaip naudoti „loop in awk“ scenarijų ir tinkamai naudoti „loop“ programuojant „awk“.