Awk

Kaip naudoti ciklą awk komandoje

Kaip naudoti ciklą awk komandoje
Ciklas naudojamas kelis kartus vykdant kai kuriuos teiginius. Kilpos kartojimas pagal nutraukimo sąlygą arba masyvo elementų skaičių. Trys kilpų tipai palaikomi bet kuria programavimo kalba. Nes kilpa yra viena iš jų. Dėl kilpos galima deklaruoti dviem būdais. Paprasta kilpai sudaro trys dalys.  Kitas ciklo ciklas yra įvesties ciklas, naudojamas pakartoti bet kokį duomenų ar masyvo sąrašą. Ši pamoka parodo šių dviejų tipų komandų naudojimą komandoje „awk“, naudojant įvairius pavyzdžius.

Sintaksė:

  1. kilpos deklaracijai:
for (inicializavimas; nutraukimo sąlyga; prieaugis / mažinimas)
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į.

  1. deklaracija
for (kintamasis masyve / sąraše)
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 70000
2016 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.txt

Iš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“.

Žymeklis peršoka arba juda atsitiktinai, kai rašote „Windows 10“
Jei pastebite, kad pelės žymeklis peršoka arba juda pats, automatiškai, atsitiktinai, kai vedate „Windows“ nešiojamąjį kompiuterį ar kompiuterį, kai k...
Kaip pakeisti pelės ir jutiklinių plokščių slinkimo kryptį sistemoje „Windows 10“
Pelė ir Jutiklinė dalisTai ne tik palengvina skaičiavimus, bet ir efektyvesnį bei mažiau laiko reikalaujantį. Mes neįsivaizduojame gyvenimo be šių pri...
Kaip pakeisti pelės žymeklio ir žymeklio dydį, spalvą ir schemą sistemoje „Windows 10“
„Windows 10“ pelės žymeklis ir žymeklis yra labai svarbūs operacinės sistemos aspektai. Tai galima pasakyti ir apie kitas operacines sistemas, taigi, ...