Ahoj

Ako sa používa príkaz loop pre awk

Ako sa používa príkaz loop pre awk
Smyčka sa používa na vykonávanie niektorých príkazov viackrát. Iterácia slučky na základe podmienky ukončenia alebo počtu prvkov poľa. Akýkoľvek programovací jazyk podporuje tri typy slučiek. For loop je jedným z nich. Smyčku for možno deklarovať dvoma spôsobmi. Slučka Simple for obsahuje tri časti.  A ďalšou slučkou for je slučka for-in, ktorá sa používa na iteráciu ľubovoľného zoznamu údajov alebo polí. Tento výukový program ukazuje použitie týchto dvoch typov slučiek v príkaze awk pomocou rôznych príkladov.

Syntax:

  1. pre deklaráciu slučky:
pre (inicializácia; podmienka ukončenia; prírastok / úbytok)
Vyhlásenia

Prvá časť slúži na inicializáciu premennej pre spustenie pre slučka. Druhá časť obsahuje podmienku ukončenia na riadenie iterácie cyklu a cyklus bude pokračovať, kým nebude podmienka pravdivá. Posledná časť zvýši alebo zníži inicializačnú premennú na základe prvej časti.

  1. pre vstupné vyhlásenie
pre (premenná v poli / zozname)
Vyhlásenia

pre-do slučka sa používa na vykonávanie úloh, pri ktorých nie je stanovený počet iterácií slučky. pre-do slučka sa používa hlavne na analýzu poľa alebo zoznamu údajov. Smyčka načíta všetky údaje z poľa alebo zoznamu a uloží hodnotu do premennej v každej iterácii.

Príklad-1: Používanie slučky simple for

V nasledujúcom skripte je použitá slučka for. Tu, pult premenná je inicializovaná číslom 10 a cyklus sa ukončí, keď bude hodnota pult je menej ako 5. Skript vytlačí pult hodnoty od 10 do 5. Spustite príkaz z terminálu.

$ echo | awk 'for (counter = 10; counter> = 5; counter--)
vypísať krát „Beží pre“, počítadlo, „krát."," \ n "; '

Výkon:

Po vykonaní príkazu sa objaví nasledujúci výstup.

Príklad 2: Použitie slučky for-in na čítanie poľa

Pole s názvom Zákazník je deklarované v nasledujúcom skripte, kde sa nachádza pole zákazníka id je nastavený ako index poľa a index zákazníka názov je nastavená ako hodnota poľa. pre-do slučka sa tu používa na iteráciu každého indexu z poľa a tlač názvu zákazníka. Spustite skript z terminálu.

$ echo | awk 'BEGIN Zákazník ["4587"] = "Neil Johnson";
Zákazník ["8953"] = "Ella binte Nazir";
Zákazník ["3455"] = "Bruce Hyslop";
Zákazník ["6335"] = "Isabella";
 
END for (i in Customer)
vytlačiť "Názov", i, "je", zákazník [i]
'

Výkon:

Po vykonaní skriptu sa zobrazí nasledujúci výstup.

Príklad-3: Použitie vnoreného cyklu for

Keď je slučka for deklarovaná pod inou slučkou for, potom sa nazýva vnorená slučka for. Vonkajšia slučka použitá v tomto skripte bude iterovať dvakrát a vnútorná slučka iteruje trikrát. Takže tlačový výpis sa vykoná pre (2X3 = 6) 6-krát. Spustite skript z terminálu.

$ echo | awk 'END for (i = 1; i<=2; i++)
pre (j = 1; j<=3; j++)
vypísať "Iteračný riadok", i, "a stĺpec", j, "\ n"; '

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad-4: Použitie príkazu for loop with break

prestávka príkaz sa používa v ľubovoľnej slučke na ukončenie slučky pred dosiahnutím podmienky ukončenia na základe konkrétnej podmienky. V nasledujúcom skripte bude cyklus for začínať od 3 a bude ukončený, keď bude hodnota i je väčšie ako 20. Ale keď hodnota i sa bude rovnať premennej číslo potom bude splnená podmienka if a slučka sa pre prestávka vyhlásenie.

$ echo | awk 'BEGIN num = 7; END pre (i = 3; i<=20; i++)
if (i == num) break;
inak
print "Aktuálna hodnota i =", i, "\ n"; '

Výkon:

Tu, ak je podmienka nepravdivá pre štyri iterácie, keď je hodnota i je 3,4,5 a 6. Nasledujúci výstup sa teda vytlačí pre štyri iterácie.

Príklad-5: Použitie cyklu for s príkazom continue

Príkaz Pokračovať sa používa v ľubovoľnej slučke na vynechanie ľubovoľného príkazu na základe konkrétnej podmienky. Pole s názvom výrobok je deklarovaný v nasledujúcom skripte. pre-do slučka slúži na iteráciu poľa a kontrolu každej hodnoty pomocou „Kancelársky softvér„. Ak sa hodnota zhoduje, potom sa nedostupná správa vytlačí vynechaním dostupnej správy pre príkaz continue, inak sa vytlačí nedostupná správa. Spustite skript z terminálu.

$ echo | awk 'BEGIN product ["1001"] = "Antivírus";
product ["1002"] = "Kancelársky softvér";
product ["1003"] = "Kresliaci softvér";
produkt ["1004"] = "HDD";
produkt ["1005"] = "DVD"; KONIEC pre (i v produkte)
if (produkt [i] == "Kancelársky softvér")
tlačový produkt [i], „nie je k dispozícii \ n“;
ďalej;

tlačový produkt [i], "je k dispozícii", "\ n"; '

Výkon:

Po spustení skriptu sa zobrazí nasledujúci výstup.

Príklad-6: Použitie cyklu for v súbore awk

Vytvorte textový súbor s názvom predaj.TXT a pridajte nasledujúci obsah na precvičenie tohto príkladu.

predaj.TXT

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Vytvorte awk súbor s názvom cal_sal.awk pomocou nasledujúceho skriptu vypočítate celkovú sumu predaja súboru predaj.TXT. Druhé pole obsahuje ročnú sumu predaja v súbore predaj.TXT. V scenári, predaj pole uloží všetky hodnoty druhého poľa a súčet premenná je inicializovaná s 0 na pridanie všetkých hodnôt predaj pole. Ďalšie, pre-do slučka sa používa na iteráciu každého prvku predaj pole a pridajte hodnotu pomocou súčet premenná. Nakoniec sa tlačový výpis použije na tlač hodnoty súčet premenná na zobrazenie celkovej výšky predaja.

cal_sal.awk


tržby [i ++] = 2 doláre;
suma = 0;

KONIEC
pre (i v predaji)

suma = suma + tržby [i];

vytlačiť "Celková suma predaja =" suma;

Spustením nasledujúceho príkazu vykonajte skript cal_sal.súbor awk.

$ awk -f cal_sal.awk predaj.TXT

Výkon:

V zozname je 5 záznamov predaj.TXT súbor a suma predajnej sumy je 409000, ktorá sa vytlačí po vykonaní skriptu.

Záver:

V tomto návode sa pokúsime vysvetliť rôzne použitia príkazu for loop in awk. Dúfam, že čitateľ získa jasnú predstavu o použití cyklu for loop v awk skripte a bude schopný správne použiť cyklus loop v programe awk.

Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...
Hry 0 A.D. Výukový program
0 A.D. Výukový program
Z mnohých strategických hier je tu 0 A.D. dokáže vyniknúť ako komplexný titul a veľmi hlboká, taktická hra napriek tomu, že je otvoreným zdrojom. Vývo...