Awk

Hoe de for-lus te gebruiken in de opdracht awk

Hoe de for-lus te gebruiken in de opdracht awk
Loop wordt gebruikt om sommige instructies meerdere keren uit te voeren. De iteratie van de lus op basis van de beëindigingsvoorwaarde of het aantal array-elementen. Drie soorten lussen worden ondersteund door elke programmeertaal. For loop is er een van. For-lus kan op twee manieren worden gedeclareerd. Simple for loop bevat drie delen.  En een andere for-lus is een for-in-lus die wordt gebruikt om een ​​lijst met gegevens of arrays te herhalen. Deze tutorial toont het gebruik van deze twee soorten lussen in de awk-opdracht aan de hand van verschillende voorbeelden.

Syntaxis:

  1. voor lusverklaring:
for (initialisatie; beëindigingsvoorwaarde; verhogen/verlagen)
uitspraken

Het eerste deel wordt gebruikt om de variabele voor het starten te initialiseren voor lus. Het tweede deel bevat de beëindigingsvoorwaarde om de iteratie van de lus te regelen en de lus zal doorgaan totdat de voorwaarde waar is. Het laatste deel zal de initialisatievariabele verhogen of verlagen op basis van het eerste deel.

  1. for-in aangifte
for (variabele in array/lijst)
uitspraken

voor in lus wordt gebruikt om die taken uit te voeren waarbij het aantal herhalingen van de lus niet vaststaat. voor in lus wordt voornamelijk gebruikt om een ​​array of lijst met gegevens te ontleden. De lus leest alle gegevens uit de array of lijst en slaat de waarde op in een variabele in elke iteratie.

Voorbeeld-1: Simple for loop gebruiken

In het volgende script wordt een eenvoudige for-lus gebruikt:. Hier, teller variabele wordt geïnitialiseerd met 10 en de lus wordt beëindigd wanneer de waarde van teller is minder dan 5. Het script zal de . afdrukken teller waarden van 10 tot 5. Voer de opdracht uit vanaf de terminal.

$ echo | awk ' voor (teller = 10; teller >= 5; teller--)
print "Rennen voor", teller, " tijden.","\n"; '

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de opdracht:.

Voorbeeld-2: For-in-lus gebruiken om een ​​array te lezen

Een array met de naam Klant wordt gedeclareerd in het volgende script waarbij de klant ID kaart is ingesteld als een matrixindex en die van de klant customer naam is ingesteld als matrixwaarde. voor in lus wordt hier gebruikt om elke index uit de array te herhalen en de naam van de klant af te drukken. Voer het script uit vanaf de terminal.

$ echo | awk 'BEGIN Klant["4587"] = "Neil Johnson";
Klant["8953"] = "Ella binte Nazir";
Klant["3455"] = "Bruce Hyslop";
Klant["6335"] = "Isabella";
 
END voor (i in Klant)
print  "De naam van ", i," is " ,Klant[i]
'

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Voorbeeld-3: geneste for-lus gebruiken

Wanneer een for-lus wordt gedeclareerd onder een andere for-lus, wordt deze geneste for-lus genoemd. De buitenste lus die in dit script wordt gebruikt, wordt 2 keer herhaald en de binnenste lus 3 keer. Dus het print statement wordt uitgevoerd voor, (2X3=6) 6 keer. Voer het script uit vanaf de terminal.

$ echo | awk 'END voor (i=1; i<=2; i++)
voor (j=1; j<=3; j++)
print  "Itereren rij ", i" en kolom ", j,"\n";'

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Voorbeeld-4: For-lus gebruiken met break-instructie

breken instructie wordt in elke lus gebruikt om de lus te beëindigen voordat de beëindigingsvoorwaarde wordt bereikt op basis van de specifieke voorwaarde. In het volgende script begint de for-lus bij 3 en eindigt deze wanneer de waarde van ik groter is dan 20. Maar wanneer de waarde van ik zal gelijk zijn aan de variabele aantal dan is de if-voorwaarde waar en wordt de lus beëindigd voor de breken uitspraak.

$ echo | awk 'BEGIN num=7; END voor (i=3; i<=20; i++)
if( i == num) breken;
anders
print  "Huidige waarde van i =",i ,"\n";'

Uitgang:

Hier, als de voorwaarde onwaar is voor vier iteraties wanneer de waarde van ik is 3,4,5 en 6. Dus de volgende uitvoer wordt afgedrukt voor de vier iteraties:.

Voorbeeld-5: For-lus gebruiken met instructie continue

Doorgaan-instructie wordt in elke lus gebruikt om elke instructie op basis van een bepaalde voorwaarde weg te laten. Een array met de naam Product wordt gedeclareerd in het volgende script:. voor in loop wordt gebruikt om de array te herhalen en elke waarde te controleren met "Kantoorsoftware“. Als de waarde overeenkomt, wordt een niet-beschikbaar bericht afgedrukt door het beschikbare bericht weg te laten voor de instructie Doorgaan, anders wordt het niet-beschikbare bericht afgedrukt. Voer het script uit vanaf de terminal.

$ echo | awk 'BEGINproduct["1001"]="Antivirus";
product["1002"]="Office-software";
product["1003"]="Tekensoftware";
product["1004"]="HDD";
product["1005"]="DVD"; EINDE voor (i in product)
if(product[i] == "Kantoorsoftware")
print product[i]," is niet beschikbaar\n";
doorgaan met;

print product[i], " is beschikbaar" ,"\n";'

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Voorbeeld-6: For-lus gebruiken in awk-bestand

Maak een tekstbestand met de naam verkoop.tekst en voeg de volgende inhoud toe om dit voorbeeld te oefenen.

verkoop.tekst

2015 70000
2016 80000
2017 83000
2018 86000
2019 90000

Maak een awk-bestand met de naam cal_sal.awk met het volgende script om het totale verkoopbedrag van het bestand te berekenen: verkoop.tekst. Het tweede veld bevat het jaarlijkse verkoopbedrag in het bestand verkoop.tekst. In het script, de verkopen array slaat alle waarden van het tweede veld op en som variabele wordt geïnitialiseerd met 0 om alle waarden van toe te voegen verkoop reeks. De volgende, voor in lus wordt gebruikt om elk element van te herhalen de verkopen array en voeg de waarde toe met de som variabele. Ten slotte wordt print statement gebruikt om de waarde van . af te drukken som variabele om het totale verkoopbedrag weer te geven.

cal_sal.awk


verkoop[i++]=$2;
som=0;

EINDE
voor (ik in de verkoop)

som=som+verkoop[i];

print "Totaal verkoopbedrag=" som;

Voer de volgende opdracht uit om het script van cal_sal . uit te voeren.awk-bestand.

$ awk -f cal_sal.slechte verkoop.tekst

Uitgang:

Er zijn 5 records in de verkoop.tekst bestand en de som van het verkoopbedrag is 409000 dat wordt afgedrukt na het uitvoeren van het script.

Conclusie:

Verschillende toepassingen van for loop in awk-opdracht worden in deze tutorial geprobeerd uit te leggen. Hoop, de lezer krijgt een duidelijk idee over het gebruik van for loop in awk-script en in staat om for loop correct te gebruiken in awk-programmering.

Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...