Awk

Hur man använder för loop i awk-kommando

Hur man använder för loop i awk-kommando
Loop används för att utföra vissa uttalanden flera gånger. Iterationen av slingan baserat på avslutningsvillkoret eller antalet arrayelement. Tre typer av slingor stöds av vilket programmeringsspråk som helst. För loop är en av dem. För loop kan deklareras på två sätt. Enkel för loop innehåller tre delar.  Och en annan för loop är in-loop som används för att iterera vilken lista eller data som helst. Denna handledning visar användningen av dessa två typer av slingor i awk-kommando med hjälp av olika exempel.

Syntax:

  1. för loopdeklaration:
för (initialisering; avslutningsvillkor; tillväxt / minskning)
uttalanden

Första delen används för att initialisera variabeln för start för slinga. Den andra delen innehåller avslutningsvillkoret för att styra slingans iteration och slingan fortsätter tills villkoret är sant. Den sista delen ökar eller minskar initialiseringsvariabeln baserat på den första delen.

  1. för-in-deklaration
för (variabel i array / lista)
uttalanden

för-in loop används för att utföra de uppgifter där antalet iteration av loop inte är fast. för-in loop används främst för att analysera en matris eller en lista med data. Slingan läser varje data från matrisen eller listan och lagrar värdet till en variabel i varje iteration.

Exempel 1: Använda enkel för loop

En enkel loop används i följande skript. Här, disken variabel initialiseras med 10 och slingan avslutas när värdet på disken är mindre än 5. Manuset kommer att skriva ut disken värden från 10 till 5. Kör kommandot från terminalen.

$ eko | awk 'för (counter = 10; counter> = 5; counter--)
skriva ut "Running for", counter, "times."," \ n "; '

Produktion:

Följande utdata visas efter kommandot.

Exempel 2: Använd en in-loop för att läsa en matris

En matris med namnet Kund deklareras i följande skript där kundens id ställs in som ett matrisindex och kundens namn är satt som matrisvärde. för-in loop används här för att iterera varje index från arrayen och skriva ut kundens namn. Kör skriptet från terminalen.

$ eko | awk 'BEGIN Customer ["4587"] = "Neil Johnson";
Kund ["8953"] = "Ella binte Nazir";
Kund ["3455"] = "Bruce Hyslop";
Kund ["6335"] = "Isabella";
 
SLUT för (i hos kund)
skriva ut "Namnet på", i, "är", Kund [i]
'

Produktion:

Följande utdata visas efter att manuset har körts.

Exempel 3: Använda kapslad för loop

När en for-loop deklareras under en annan för loop kallas den nested for loop. Den yttre slingan som används i detta skript upprepas två gånger och den inre slingan upprepas tre gånger. Så, utskriften kommer att köras för (2X3 = 6) 6 gånger. Kör skriptet från terminalen.

$ eko | awk 'END för (i = 1; i<=2; i++)
för (j = 1; j<=3; j++)
skriv ut "Iterating row", i, "and column", j, "\ n"; '

Produktion:

Följande utdata visas efter körning av skriptet.

Exempel 4: Använda för loop med break-uttalande

ha sönder uttalande används i valfri slinga för att avsluta slingan innan den når avslutningsvillkoret baserat på det specifika tillståndet. I följande skript börjar for loop från 3 och det avslutas när värdet på i är större än 20. Men när värdet av i kommer att vara lika med variabeln antal då är if-villkoret sant och slingan avslutas för ha sönder påstående.

$ eko | awk 'BEGIN num = 7; SLUT för (i = 3; i<=20; i++)
om (i == num) bryta;
annan
skriv ut "Aktuellt värde för i =", i, "\ n"; '

Produktion:

Här, om villkoret är falskt för fyra iterationer när värdet på i är 3,4,5 och 6. Så följande utskrift skrivs ut för de fyra iterationerna.

Exempel 5: Använda för loop med continue-uttalande

Fortsätt uttalande används i alla loopar för att utelämna alla uttalanden baserat på ett visst tillstånd. En matris med namnet produkt förklaras i följande skript. för-in loop används för att upprepa matrisen och kontrollera varje värde med “Kontorsprogramvara“. Om värdet matchar kommer ett otillgängligt meddelande att skrivas ut genom att utelämna tillgängligt meddelande för fortsättningsuttalande, annars skrivs otillgängligt meddelande ut. Kör skriptet från terminalen.

$ eko | awk 'BEGIN product ["1001"] = "Antivirus";
produkt ["1002"] = "Office-programvara";
product ["1003"] = "Ritprogramvara";
produkt ["1004"] = "HDD";
produkt ["1005"] = "DVD"; SLUT för (jag i produkten)
if (produkt [i] == "Office-programvara")
utskriftsprodukt [i], "är inte tillgänglig \ n";
Fortsätta;

utskriftsprodukt [i], "är tillgänglig", "\ n"; '

Produktion:

Följande utdata visas efter körning av skriptet.

Exempel 6: Använda för loop i awk-fil

Skapa en textfil med namnet försäljning.Text och lägg till följande innehåll för att öva detta exempel.

försäljning.Text

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Skapa en awk-fil med namnet cal_sal.awk med följande skript för att beräkna filens totala försäljningsbelopp försäljning.Text. Det andra fältet innehåller det årliga försäljningsbeloppet i filen försäljning.Text. I manuset, försäljningen array lagrar alla värden i det andra fältet och belopp variabel initialiseras med 0 för att lägga till alla värden för försäljning array. Nästa, för-in loop används för att itera varje element i försäljningen array och lägg till värdet med belopp variabel. Slutligen används utskrift för att skriva ut värdet på belopp variabel för att visa det totala försäljningsbeloppet.

cal_sal.awk


försäljning [i ++] = $ 2;
summa = 0;

SLUTET
för (jag i försäljning)

summa = summa + försäljning [i];

skriva ut "Totalt försäljningsbelopp =" summa;

Kör följande kommando för att utföra skriptet för cal_sal.awk-fil.

$ awk -f cal_sal.awk försäljning.Text

Produktion:

Det finns 5 poster i försäljning.Text filen och summan av försäljningsbeloppet är 409000 som skrivs ut efter att manuset har körts.

Slutsats:

Olika användningsområden för for loop in awk-kommandot försöks förklara i denna handledning. Hoppas, läsaren får en tydlig uppfattning om hur man använder for loop in awk-skript och kan använda för loop ordentligt i awk-programmering.

Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...
Installera det senaste OpenRA-strategispelet på Ubuntu Linux
OpenRA är en Libre / Free Real Time Strategy-spelmotor som återskapar de tidiga Westwood-spelen som det klassiska Command & Conquer: Red Alert. Distri...