Szintaxis:
- hurok deklarációhoz:
nyilatkozatok
Az első rész a változó inicializálására szolgál mert hurok. A második rész tartalmazza a befejezés feltételét a hurok iterációjának szabályozásához, és a hurok addig folytatódik, amíg a feltétel igaz. Az utolsó rész növeli vagy csökkenti az inicializálási változót az első rész alapján.
- in-in nyilatkozat
nyilatkozatok
be a hurok azon feladatok elvégzésére szolgál, amelyeknél a hurok iterációjának száma nincs rögzítve. be A hurok elsősorban egy tömb vagy adatlista elemzésére szolgál. A hurok kiolvassa a tömb vagy a lista minden adatait, és az értékeket minden iterációban egy változónak tárolja.
1. példa: Simple for loop használata
Egy egyszerű ciklust használunk a következő szkriptben. Itt, számláló változót 10-gyel inicializáljuk, és a hurok akkor ér véget, amikor a számláló kevesebb, mint 5. A szkript kinyomtatja a számláló értékek 10-től 5-ig. Futtassa a parancsot a terminálról.
$ visszhang | awk 'for (számláló = 10; számláló> = 5; számláló--)nyomtassa ki a "Running for", counter "számokat."," \ n "; '
Kimenet:
A parancs végrehajtása után a következő kimenet jelenik meg.
2. példa: A bejövő hurok használata egy tömb elolvasásához
Az Ügyfél nevű tömböt a következő szkript deklarálja, ahol az ügyfél id tömbindexként van beállítva, és az ügyfél név tömbértékként van beállítva. be A hurok itt minden indexet a tömbből iterál és az ügyfél nevét kinyomtatja. Futtassa a parancsfájlt a terminálról.
$ visszhang | awk 'BEGIN Ügyfél ["4587"] = "Neil Johnson";Ügyfél ["8953"] = "Ella binte Nazir";
Ügyfél ["3455"] = "Bruce Hyslop";
Ügyfél ["6335"] = "Isabella";
VÉGE for (i in Customer)
print "A", i, "is" neve, Ügyfél [i]
'
Kimenet:
A szkript végrehajtása után a következő kimenet jelenik meg.
3. példa: Beágyazott használata hurokhoz
Amikor egy for ciklust egy másik ciklus alatt deklarálunk, akkor azt egymásba ágyazottnak nevezzük. Az ebben a szkriptben használt külső hurok kétszer, a belső hurok pedig háromszor fog ismétlődni. Tehát a nyomtatási utasítás (2X3 = 6) 6 alkalommal fog végrehajtani. Futtassa a parancsfájlt a terminálról.
$ visszhang | awk 'END for (i = 1; i<=2; i++)mert (j = 1; j<=3; j++)
"Iterating row", i, "and column", j, "\ n"; 'nyomtatása
Kimenet:
A következő kimenet jelenik meg a szkript futtatása után.
4. példa: Használat hurokhoz törés utasítással
szünet utasítás bármely hurokban a hurok befejezésére szolgál, mielőtt az adott feltétel alapján elérné a felmondási feltételt. A következő szkriptben a ciklus 3-tól kezdődik, és akkor ér véget, amikor a én nagyobb, mint 20. De amikor az értéke én egyenlő lesz a változóval szám akkor az if feltétel igaz lesz, és a hurok véget ér a szünet nyilatkozat.
$ visszhang | awk 'BEGIN szám = 7; VÉGE for (i = 3; i<=20; i++)if (i == szám) break;
más
print "i = aktuális értéke", i, "\ n"; '
Kimenet:
Itt, ha a feltétel hamis négy iteráció esetén, amikor a értéke én értéke 3,4,5 és 6. Tehát a következő kimenetet nyomtatjuk a négy iterációra.
5. példa: A hurok használata folytatás utasítással
A Continue utasítás bármely ciklusban felhasználható bármely feltétel feltétel nélküli kihagyására. Nevű tömb termék a következő szkriptben van deklarálva. be a hurok a tömb iterálására szolgál, és minden értéket a “Irodai szoftverek„. Ha az érték megegyezik, akkor egy nem elérhető üzenet fog kinyomtatni a rendelkezésre álló üzenet kihagyásával a folytatás utasításhoz, különben az nem elérhető üzenet nyomtat. Futtassa a parancsfájlt a terminálról.
$ visszhang | awk 'BEGIN termék ["1001"] = "Vírusirtó";termék ["1002"] = "Irodai szoftver";
termék ["1003"] = "Rajzoló szoftver";
termék ["1004"] = "HDD";
termék ["1005"] = "DVD"; VÉGE for (i in product)
if (termék [i] == "Irodai szoftver")
nyomtatási termék [i], "nem érhető el \ n";
folytatni;
nyomtatott termék [i], "elérhető", "\ n"; '
Kimenet:
A következő kimenet jelenik meg a szkript futtatása után.
6. példa: A ciklus használata az awk fájlban
Hozzon létre egy szöveges fájlt értékesítés.txt és adja hozzá a következő tartalmat a példa gyakorlásához.
értékesítés.txt
2015 700002016 80000
2017 83000
2018 86000
2019 90000
Hozzon létre egy nevű awk fájlt cal_sal.awk a következő szkript segítségével kiszámíthatja a fájl teljes értékesítési összegét értékesítés.txt. A második mező az éves értékesítési összeget tartalmazza a fájlban értékesítés.txt. A forgatókönyvben, az eladások tömb tárolja a második mező összes értékét és összeg változót 0-val inicializáljuk, hogy összeadjuk a értékesítés sor. Következő, be ciklust használjuk az egyes elemek iterálásához az eladások tömb és adja hozzá az értéket a összeg változó. Végül a print utasítás segítségével nyomtathatjuk ki az értékét összeg változó a teljes eladási összeg megjelenítéséhez.
cal_sal.awk
eladások [i ++] = 2 USD;
összeg = 0;
END
(i az értékesítésben)
összeg = összeg + értékesítés [i];
print "Teljes eladási összeg =" összeg;
Futtassa a következő parancsot a cal_sal parancsfájljának végrehajtásához.awk fájl.
$ awk -f cal_sal.awk eladások.txtKimenet:
5 rekord van a értékesítés.txt fájl és az eladási összeg összege 409000, amelyet a szkript végrehajtása után nyomtatnak ki.
Következtetés:
A loop in awk parancs különböző felhasználásait megpróbálják elmagyarázni ebben az oktatóanyagban. Remélem, az olvasó világos képet fog kapni a ciklus használatáról az awk szkriptben, és képes lesz megfelelően használni a ciklust az awk programozásában.