Awk

Sådan bruges til loop i awk-kommando

Sådan bruges til loop i awk-kommando
Loop bruges til at udføre nogle udsagn flere gange. Sløjfens iteration baseret på termineringsbetingelsen eller antallet af arrayelementerne. Tre typer sløjfer understøttes af ethvert programmeringssprog. For loop er en af ​​dem. For loop kan deklareres på to måder. Enkel til sløjfe indeholder tre dele.  Og en anden for loop er in-loop, der bruges til at gentage enhver liste over data eller array. Denne tutorial viser brugen af ​​disse to typer sløjfer i awk-kommando ved hjælp af forskellige eksempler.

Syntaks:

  1. til løkkeerklæring:
til (initialisering; opsigelsesbetingelse; forøgelse / nedgang)
udsagn

Første del bruges til at initialisere variablen til start til løkke. Den anden del indeholder termineringsbetingelsen for at kontrollere sløjfens gentagelse, og sløjfen fortsætter, indtil betingelsen er sand. Den sidste del forøger eller mindsker initialiseringsvariablen baseret på den første del.

  1. for-in-erklæring
for (variabel i matrix / liste)
udsagn

for-in loop bruges til at udføre de opgaver, hvor antallet af iteration af loop ikke er fast. for-in loop bruges hovedsagelig til at analysere en matrix eller en liste over data. Sløjfen læser hver data fra arrayet eller listen og gemmer værdien til en variabel i hver iteration.

Eksempel 1: Brug af simple for loop

En simpel sløjfe bruges i det følgende script. Her, tæller variabel initialiseres med 10, og sløjfen afsluttes, når værdien af tæller er mindre end 5. Scriptet udskriver tæller værdier fra 10 til 5. Kør kommandoen fra terminalen.

$ ekko | awk 'for (tæller = 10; tæller> = 5; tæller--)
udskriv "Kører for", tæller, "gange."," \ n "; '

Produktion:

Følgende output vises efter udførelse af kommandoen.

Eksempel 2: Brug af in-loop til at læse en matrix

Et array med navnet Customer erklæres i det følgende script, hvor kundens id indstilles som et matrixindeks og kundens navn er indstillet som matrixværdi. for-in loop bruges her til at gentage hvert indeks fra arrayet og udskrive kundens navn. Kør scriptet fra terminalen.

$ ekko | awk 'BEGIN Customer ["4587"] = "Neil Johnson";
Kunde ["8953"] = "Ella binte Nazir";
Kunde ["3455"] = "Bruce Hyslop";
Kunde ["6335"] = "Isabella";
 
SLUT for (i hos kunde)
udskrive "Navnet på", i, "er", kunde [i]
'

Produktion:

Følgende output vises efter udførelse af scriptet.

Eksempel 3: Brug af nestet til loop

Når en for-loop erklæres under en anden for loop, kaldes den indlejret for loop. Den ydre sløjfe, der bruges i dette script, gentages 2 gange, og den indre sløjfe gentages 3 gange. Så udskriftserklæringen udføres 6 gange for (2X3 = 6). Kør scriptet fra terminalen.

$ ekko | awk 'END for (i = 1; i<=2; i++)
for (j = 1; j<=3; j++)
udskriv "Itererende række", i, "og kolonne", j, "\ n"; '

Produktion:

Følgende output vises efter kørsel af scriptet.

Eksempel 4: Brug af loop med break-sætning

pause sætning bruges i en hvilken som helst sløjfe til at afslutte sløjfen, før den når termineringstilstanden baseret på den bestemte tilstand. I det følgende script starter for loop fra 3, og det afsluttes, når værdien af jeg er større end 20. Men når værdien af jeg vil være lig med variablen antal så er hvis betingelsen sand, og sløjfen afsluttes for pause udmelding.

$ ekko | awk 'BEGIN num = 7; SLUT for (i = 3; i<=20; i++)
hvis (i == num) pause;
andet
udskriv "Aktuel værdi af i =", i, "\ n"; '

Produktion:

Her, hvis betingelsen er falsk for fire iterationer, når værdien af jeg er 3,4,5 og 6. Så følgende udskrivning udskrives til de fire iterationer.

Eksempel 5: Brug af for loop med fortsat sætning

Fortsæt-sætning bruges i en hvilken som helst sløjfe til at udelade enhver erklæring baseret på en bestemt tilstand. En matrix navngivet produkt erklæres i følgende script. for-in loop bruges til at gentage arrayet og kontrollere hver værdi med “Kontorsoftware“. Hvis værdien stemmer overens, udskrives en utilgængelig besked ved at udelade tilgængelig besked til fortsat erklæring, ellers udskrives utilgængelig besked. Kør scriptet fra terminalen.

$ ekko | awk 'BEGIN product ["1001"] = "Antivirus";
produkt ["1002"] = "Office-software";
produkt ["1003"] = "Tegnesoftware";
produkt ["1004"] = "HDD";
produkt ["1005"] = "DVD"; END for (i i produkt)
hvis (produkt [i] == "Office-software")
printprodukt [i], "er ikke tilgængeligt \ n";
Blive ved;

printprodukt [i], "er tilgængeligt", "\ n"; '

Produktion:

Følgende output vises efter kørsel af scriptet.

Eksempel 6: Brug af loop i awk-fil

Opret en tekstfil med navnet salg.txt og tilføj følgende indhold for at øve dette eksempel.

salg.txt

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Opret en awk-fil med navnet cal_sal.akavet med følgende script til at beregne den samlede salgsbeløb for filen salg.txt. Det andet felt indeholder det årlige salgsbeløb i filen salg.txt. I scriptet, salget array gemmer alle værdier i det andet felt og sum variabel initialiseres med 0 for at tilføje alle værdier af salg array. Næste, for-in loop bruges til at gentage hvert element af salget array og tilføj værdien med sum variabel. Endelig bruges udskriftserklæring til at udskrive værdien af sum variabel for at vise det samlede salgsbeløb.

cal_sal.akavet


salg [i ++] = $ 2;
sum = 0;

ENDE
for (jeg i salg)

sum = sum + salg [i];

udskrive "Samlet salgsbeløb =" sum;

Kør følgende kommando for at udføre scriptet til cal_sal.awk-fil.

$ awk -f cal_sal.awk salg.txt

Produktion:

Der er 5 poster i salg.txt filen, og summen af ​​salgsbeløbet er 409000, der udskrives efter udførelse af scriptet.

Konklusion:

Forskellige anvendelser af for loop i awk-kommando forsøges at forklare i denne vejledning. Håber, læseren får en klar idé om at bruge til loop i awk script og i stand til at bruge til loop korrekt i awk programmering.

Installer det nyeste OpenRA-strategispil på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spilmotor, der genskaber de tidlige Westwood-spil som det klassiske Command & Conquer: Red Alert. Distrib...
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...