Awk

Hvordan bruke for loop i awk-kommando

Hvordan bruke for loop i awk-kommando
Loop brukes til å utføre noen uttalelser flere ganger. Gjentagelsen av sløyfen basert på avslutningstilstanden eller antallet matriseelementer. Tre typer sløyfer støttes av ethvert programmeringsspråk. For loop er en av dem. For loop kan deklareres på to måter. Enkel for sløyfe inneholder tre deler.  Og en annen for loop er in-loop som brukes til å iterere en hvilken som helst liste med data eller matrise. Denne opplæringen viser bruken av disse to typer løkker i awk-kommando ved å bruke forskjellige eksempler.

Syntaks:

  1. for løkkeerklæring:
for (initialisering; avslutningsbetingelse; økning / reduksjon)
uttalelser

Første del brukes til å initialisere variabelen for start til Løkke. Den andre delen inneholder avslutningsbetingelsen for å kontrollere iterasjonen av sløyfen, og sløyfen vil fortsette til tilstanden er sant. Den siste delen vil øke eller redusere initialiseringsvariabelen basert på den første delen.

  1. for-in erklæring
for (variabel i matrise / liste)
uttalelser

for i loop brukes til å utføre de oppgavene der antall iterasjon av loop ikke er fast. for i loop brukes hovedsakelig til å analysere en matrise eller en liste over data. Sløyfen leser hver data fra matrisen eller listen og lagrer verdien til en variabel i hver iterasjon.

Eksempel 1: Bruke enkel for loop

En enkel for loop brukes i følgende skript. Her, disk variabel initialiseres med 10, og sløyfen avsluttes når verdien av disk er mindre enn 5. Manuset vil skrive ut disk verdier fra 10 til 5. Kjør kommandoen fra terminalen.

$ ekko | awk 'for (counter = 10; counter> = 5; counter--)
skriv ut "Running for", counter, "times."," \ n "; '

Produksjon:

Følgende utdata vises etter utførelse av kommandoen.

Eksempel 2: Bruk for-in loop til å lese en matrise

En matrise med navnet Customer blir erklært i følgende skript hvor kundens id er satt som en matriseindeks og kundens Navn er satt som matriseverdi. for i loop brukes her for å gjenta hver indeks fra matrisen og skrive ut kundens navn. Kjør skriptet fra terminalen.

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

Produksjon:

Følgende utdata vises etter utførelsen av skriptet.

Eksempel 3: Bruke nestet for loop

Når en for-løkke blir deklarert under en annen for løkke, kalles den nestet for loop. Den ytre sløyfen som brukes i dette skriptet, gjentar seg to ganger og den indre sløyfen gjentas tre ganger. Så utskriftserklæringen vil kjøres for (2X3 = 6) 6 ganger. Kjør skriptet fra terminalen.

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

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Eksempel 4: Bruke for loop med break statement

gå i stykker uttalelse brukes i en hvilken som helst sløyfe for å avslutte sløyfen før den når termineringstilstanden basert på den spesielle tilstanden. I det følgende skriptet vil for loop starte fra 3 og det vil avsluttes når verdien av Jeg er større enn 20. Men når verdien av Jeg vil være lik variabelen num da vil hvis tilstanden oppfylles og sløyfen avsluttes for gå i stykker uttalelse.

$ ekko | awk 'BEGIN num = 7; SLUTT for (i = 3; i<=20; i++)
hvis (i == num) pause;
ellers
skriv ut "Gjeldende verdi av i =", i, "\ n"; '

Produksjon:

Her, hvis betingelsen er falsk for fire iterasjoner når verdien av Jeg er 3,4,5 og 6. Så, følgende utskrift skrives ut for de fire iterasjonene.

Eksempel 5: Bruk for loop med fortsett uttalelse

Fortsett-setningen brukes i en hvilken som helst sløyfe for å utelate en uttalelse basert på en bestemt tilstand. Et utvalg som heter produkt er erklært i følgende skript. for i loop brukes til å gjenta matrisen og sjekke hver verdi med “Kontorprogramvare“. Hvis verdien samsvarer, vil en utilgjengelig melding skrives ut ved å utelate tilgjengelig melding for å fortsette uttalelsen, ellers vil ikke den tilgjengelige meldingen skrives ut. Kjør skriptet fra terminalen.

$ ekko | awk 'BEGIN product ["1001"] = "Antivirus";
product ["1002"] = "Kontorprogramvare";
product ["1003"] = "Tegningsprogramvare";
produkt ["1004"] = "HDD";
produkt ["1005"] = "DVD"; END for (i i produkt)
hvis (produkt [i] == "Office-programvare")
utskriftsprodukt [i], "er ikke tilgjengelig \ n";
Fortsette;

utskriftsprodukt [i], "er tilgjengelig", "\ n"; '

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Eksempel 6: Bruke for loop i awk-fil

Lag en tekstfil med navnet salg.tekst og legg til følgende innhold for å øve på dette eksemplet.

salg.tekst

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Opprett en awk-fil med navnet cal_sal.kjipt med følgende skript for å beregne den totale salgsbeløpet for filen salg.tekst. Det andre feltet inneholder det årlige salgsbeløpet i filen salg.tekst. I manuset, salgene array vil lagre alle verdiene i det andre feltet og sum variabel initialiseres med 0 for å legge til alle verdier av salg array. Neste, for i loop brukes til å gjenta hvert element av salgene array og legg til verdien med sum variabel. Til slutt brukes utskriftsuttalelse til å skrive ut verdien av sum variabel for å vise det totale salgsbeløpet.

cal_sal.kjipt


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

SLUTT
for (jeg i salg)

sum = sum + salg [i];

trykk "Totalt salgssum =" sum;

Kjør følgende kommando for å utføre skriptet til cal_sal.awk-fil.

$ awk -f cal_sal.awk salg.tekst

Produksjon:

Det er 5 poster i salg.tekst filen og summen av salgsbeløpet er 409000 som skrives ut etter at skriptet er utført.

Konklusjon:

Ulike bruksområder for for loop in awk-kommando er forsøkt å forklare i denne opplæringen. Håper, leseren vil få en klar ide om å bruke for loop in awk script og kunne bruke for loop riktig i awk programmering.

OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...