Sintaxă:
- pentru declararea buclei:
declarații
Prima parte este utilizată pentru a inițializa variabila pentru pornire pentru buclă. A doua parte conține condiția de terminare pentru a controla iterația buclei și bucla va continua până când condiția este adevărată. Ultima parte va crește sau micșora variabila de inițializare pe baza primei părți.
- declarație for-in
declarații
pentru-in bucla este utilizată pentru a face acele sarcini în care numărul de iterație al buclei nu este fixat. pentru-in bucla este utilizată în principal pentru a analiza o matrice sau o listă de date. Bucla citește fiecare dată din matrice sau listă și stochează valoarea într-o variabilă în fiecare iterație.
Exemplu-1: Utilizarea buclei simple pentru
Un script simplu pentru buclă este utilizat în următorul script. Aici, tejghea variabila este inițializată cu 10 și bucla se va termina când valoarea lui tejghea este mai mic de 5. Scriptul va imprima fișierul tejghea valori de la 10 la 5. Rulați comanda de la terminal.
$ echo | awk 'for (contor = 10; contor> = 5; contor--)tipărește „Rulează pentru”, contor, „ori."," \ n "; '
Ieșire:
Următoarea ieșire va apărea după executarea comenzii.
Exemplul-2: Utilizarea buclei for-in pentru a citi o matrice
O matrice numită Client este declarată în următorul script în care este clientul id este setat ca un index de matrice și al clientului Nume este setat ca valoare matrice. pentru-in bucla este utilizată aici pentru a itera fiecare index din matrice și a imprima numele clientului. Rulați scriptul de la terminal.
$ echo | awk 'BEGIN Client ["4587"] = "Neil Johnson";Client ["8953"] = "Ella binte Nazir";
Client ["3455"] = "Bruce Hyslop";
Client ["6335"] = "Isabella";
END pentru (i în Client)
tipăriți "Numele", i, "este", Client [i]
'
Ieșire:
Următoarea ieșire va apărea după executarea scriptului.
Exemplul-3: Utilizarea buclei imbricate
Când o buclă for este declarată sub o altă buclă for, atunci aceasta se numește imbricată pentru buclă. Bucla exterioară utilizată în acest script va itera de 2 ori, iar bucla interioară va itera de 3 ori. Deci, instrucțiunea de tipărire se va executa de (2X3 = 6) de 6 ori. Rulați scriptul de la terminal.
$ echo | awk 'END for (i = 1; i<=2; i++)pentru (j = 1; j<=3; j++)
tipăriți „Iterating row”, i, „and column”, j, „\ n”; '
Ieșire:
Următoarea ieșire va apărea după rularea scriptului.
Exemplul-4: Utilizarea buclei for cu instrucțiune break
pauză declarația este utilizată în orice buclă pentru a termina bucla înainte de a ajunge la condiția de terminare pe baza condiției particulare. În scriptul următor, bucla for va începe de la 3 și se va termina când valoarea lui eu este mai mare de 20. Dar când valoarea eu va fi egal cu variabila num atunci condiția if va fi adevărată și bucla se va termina pentru pauză afirmație.
$ echo | awk 'BEGIN num = 7; END pentru (i = 3; i<=20; i++)if (i == num) break;
altceva
print "Valoarea actuală a i =", i, "\ n"; '
Ieșire:
Aici, dacă condiția este falsă pentru patru iterații când valoarea lui eu este 3,4,5 și 6. Deci, următoarea ieșire este tipărită pentru cele patru iterații.
Exemplul-5: Utilizarea buclei for cu instruciune continue
Instrucțiunea Continue este utilizată în orice buclă pentru a omite orice declarație bazată pe orice condiție specială. O matrice numită produs este declarat în următorul script. pentru-in bucla este utilizată pentru a itera matricea și a verifica fiecare valoare cu „Software de birou„. Dacă valoarea se potrivește, atunci se va imprima un mesaj indisponibil omițând mesajul disponibil pentru declarația de continuare, altfel se va imprima un mesaj indisponibil. Rulați scriptul de la terminal.
$ echo | awk 'BEGIN product ["1001"] = "Antivirus";product ["1002"] = "Software de birou";
product ["1003"] = "Software de desen";
product ["1004"] = "HDD";
product ["1005"] = "DVD"; END pentru (i în produs)
if (produs [i] == "Software Office")
produs tipărit [i], "nu este disponibil \ n";
continua;
tipăriți produsul [i], "este disponibil", "\ n"; '
Ieșire:
Următoarea ieșire va apărea după rularea scriptului.
Exemplu-6: Folosirea buclei pentru fișierul awk
Creați un fișier text numit vânzări.txt și adăugați conținutul următor pentru a practica acest exemplu.
vânzări.txt
2015 700002016 80000
2017 83000
2018 86000
2019 90000
Creați un fișier awk numit cal_sal.awk cu următorul script pentru a calcula suma totală a vânzărilor fișierului vânzări.txt. Al doilea câmp conține suma anuală a vânzărilor în fișier vânzări.txt. În scenariu, vanzari matricea va stoca toate valorile celui de-al doilea câmp și sumă variabila este inițializată cu 0 pentru a adăuga toate valorile vânzări matrice. Următorul, pentru-in bucla este utilizată pentru a itera fiecare element al vanzari matrice și adăugați valoarea cu sumă variabil. În cele din urmă, declarația de tipărire este utilizată pentru a imprima valoarea lui sumă variabilă pentru a afișa suma totală a vânzărilor.
cal_sal.awk
vânzări [i ++] = 2 USD;
suma = 0;
SFÂRȘIT
pentru (i în vânzări)
sumă = sumă + vânzări [i];
print "Suma totală a vânzărilor =" sumă;
Rulați următoarea comandă pentru a executa scriptul cal_sal.fișier awk.
$ awk -f cal_sal.vânzări awk.txtIeșire:
Există 5 înregistrări în vânzări.txt fișier și suma sumei vânzărilor este de 409000, care este tipărită după executarea scriptului.
Concluzie:
În acest tutorial se încearcă să explice diferite utilizări ale comenzii for loop in awk. Sper că cititorul va avea o idee clară despre utilizarea buclei pentru scriptul awk și poate folosi bucla în mod corespunzător în programarea awk.