Ärme

Kuidas kasutada käsku loop in awk

Kuidas kasutada käsku loop in awk
Loopi kasutatakse mõne lause mitmel korral täitmiseks. Tsükli iteratsioon lõpetamistingimuse või massiivi elementide arvu põhjal. Mis tahes programmeerimiskeel toetab kolme tüüpi silmuseid. Sest silmus on üks neist. Sest silmus saab deklareerida kahel viisil. Lihtne silmus sisaldab kolme osa.  Ja veel üks silmus on sisselülitamise silmus, mida kasutatakse andmete või massiivi loendite kordamiseks. See õpetus näitab nende kahe tüüpi silmuste kasutamist käsus awk, kasutades erinevaid näiteid.

Süntaks:

  1. silmusdeklaratsiooni jaoks:
for (initsialiseerimine; lõpetamise tingimus; juurdekasv / vähenemine)
avaldused

Esimest osa kasutatakse muutuja initsialiseerimiseks käivitamiseks eest silmus. Teine osa sisaldab lõpetamistingimust, et kontrollida silmuse iteratsiooni ja silmus jätkub seni, kuni tingimus on tõene. Viimane osa suurendab või vähendab esimese osa põhjal lähtestusmuutujat.

  1. sissemakse deklaratsioon
for (muutuja massiivis / loendis)
avaldused

sisse-sisse loopi kasutatakse nende ülesannete täitmiseks, kus tsükli iteratsiooni arv pole fikseeritud. sisse-sisse loopi kasutatakse peamiselt massiivi või andmete loendi parsimiseks. Tsükkel loeb massiivi või loendi kõik andmed ja salvestab väärtused igas iteratsioonis muutujale.

Näide 1: lihtsa kasutamine silmuseks

Järgmises skriptis kasutatakse lihtsat tsüklit. Siin, loendur muutuja initsialiseeritakse 10-ga ja silmus lõpeb, kui väärtus loendur on väiksem kui 5. Skript prindib loendur väärtused 10–5. Käivitage terminalist käsk.

$ kaja | awk 'for (loendur = 10; loendur> = 5; loendur--)
printige "Running for", counter, "korda."," \ n "; '

Väljund:

Pärast käsu täitmist ilmub järgmine väljund.

Näide 2: massiivi lugemiseks sisselülitamise tsükli kasutamine

Massiiv nimega Klient deklareeritakse järgmises skriptis, kus kliendi oma id on seatud massiiviindeksiks ja kliendi indeksiks nimi on seatud massiivi väärtuseks. sisse-sisse loopi kasutatakse siin iga indeksi massiivist kordamiseks ja kliendi nime printimiseks. Käivitage skript terminalist.

$ kaja | awk 'BEGIN Klient ["4587"] = "Neil Johnson";
Klient ["8953"] = "Ella binte Nazir";
Klient ["3455"] = "Bruce Hyslop";
Klient ["6335"] = "Isabella";
 
END jaoks (i kliendis)
print "nimi", i, "on", klient [i]
'

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

Näide 3: pesastatud pesa kasutamine silmuseks

Kui for silmus on deklareeritud teise silmusena, nimetatakse seda tsükli pesaks. Selles skriptis kasutatav välimine silmus kordub 2 korda ja sisemine silmus 3 korda. Niisiis, väljavõte täidetakse (2X3 = 6) kuus korda. Käivitage skript terminalist.

$ kaja | awk 'END for (i = 1; i<=2; i++)
jaoks (j = 1; j<=3; j++)
printige "korduv rida", i, "ja veerg", j, "\ n"; '

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

Näide 4: Kasutamine katkestuslausega silmuse jaoks

murda lauset kasutatakse suvalises tsüklis, et lõpetada tsükkel enne konkreetse tingimuse põhjal lõpetamistingimuse saavutamist. Järgmises skriptis algab silmus for 3 ja see lõpeb, kui väärtus i on suurem kui 20. Aga kui väärtus i on võrdne muutujaga arv siis on tingimus if tõene ja silmus lõpeb murda avaldus.

$ kaja | awk 'ALGUS num = 7; LÕPP jaoks (i = 3; i<=20; i++)
kui (i == arv) puruneb;
muud
print "i = praegune väärtus", i, "\ n"; '

Väljund:

Siin, kui tingimus on vale nelja iteratsiooni korral, kui väärtus on i on 3,4,5 ja 6. Nii et nelja korduse jaoks trükitakse järgmine väljund.

Näide 5: Jätkamislausega tsükli kasutamine

Jätkamislauset kasutatakse suvalises tsüklis, et välja jätta mis tahes konkreetse tingimuse alusel tehtud lause. Nimega massiiv toote deklareeritakse järgmise skriptiga. sisse-sisse tsüklit kasutatakse massiivi itereerimiseks ja iga väärtuse kontrollimiseksKontoritarkvara". Kui väärtus ühtib, prinditakse kättesaamatu sõnum, jättes avalduse jätkamiseks saadaoleva kirja, vastasel juhul prinditakse kättesaamatu. Käivitage skript terminalist.

$ kaja | awk 'BEGIN product ["1001"] = "Viirusetõrje";
toode ["1002"] = "Kontoritarkvara";
product ["1003"] = "Joonistustarkvara";
toode ["1004"] = "HDD";
toode ["1005"] = "DVD"; LÕPP i jaoks (i tootes)
if (toode [i] == "Kontoritarkvara")
trükitoode [i], "pole saadaval \ n";
jätkata;

trükitoode [i], "on saadaval", "\ n"; '

Väljund:

Pärast skripti käivitamist ilmub järgmine väljund.

Näide 6: Akski kasutamine awk-failis

Looge nimega tekstifail müük.txt ja lisage selle näite harjutamiseks järgmine sisu.

müük.txt

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Looge awk-nimeline fail cal_sal.awk faili müügimahu arvutamiseks järgmise skriptiga müük.txt. Teine väli sisaldab failis olevat aastase müügi summat müük.txt. Stsenaariumis, müük massiiv salvestab kõik teise välja kõik väärtused ja summa muutuja lähtestatakse 0-ga, et lisada kõik väärtused müük massiiv. Järgmine, sisse-sisse loopi iga elemendi kordamiseks kasutatakse müük massiiv ja lisage väärtus väärtusega summa muutuv. Lõpuks kasutatakse väärtuse printimiseks väljavõtte printimist summa muutuja kogu müügisumma kuvamiseks.

cal_sal.awk


müük [i ++] = 2 dollarit;
summa = 0;

LÕPP
jaoks (i müügis)

summa = summa + müük [i];

print "Müügisumma =" summa;

Rakenduse cal_sal skripti käivitamiseks käivitage järgmine käsk.awk-fail.

$ awk -f cal_sal.awk müük.txt

Väljund:

Ajakirjas on 5 kirjet müük.txt fail ja müügisumma summa on 409000, mis prinditakse pärast skripti käivitamist.

Järeldus:

Selles õpetuses on püütud selgitada käsu loop in awk erinevaid kasutusviise. Loodetavasti saab lugeja selge ettekujutuse loopi kasutamiseks awk-skriptis ja oskab loopi jaoks korralikult kasutada awk-i programmeerimist.

Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...
Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...
Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...