Awk

Cum se folosește comanda buclă în awk

Cum se folosește comanda buclă în awk
Bucla este utilizată pentru a executa câteva instrucțiuni de mai multe ori. Iterația buclei pe baza condiției de terminare sau a numărului elementelor matrice. Trei tipuri de bucle sunt acceptate de orice limbaj de programare. Bucla este unul dintre ele. Bucla For poate fi declarată prin două moduri. Simplu pentru buclă conține trei părți.  Și o altă buclă pentru buclă este bucla de intrare care este utilizată pentru a itera orice listă de date sau matrice. Acest tutorial arată utilizarea acestor două tipuri de bucle în comanda awk folosind diverse exemple.

Sintaxă:

  1. pentru declararea buclei:
pentru (inițializare; condiție de terminare; creștere / diminuare)
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.

  1. declarație for-in
pentru (variabilă în matrice / listă)
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 70000
2016 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.txt

Ieș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.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...