Awk

Hoe een voorwaardelijke instructie te gebruiken in de opdracht awk

Hoe een voorwaardelijke instructie te gebruiken in de opdracht awk
De voorwaardelijke instructie wordt in elke programmeertaal gebruikt om een ​​instructie uit te voeren op basis van een bepaalde voorwaarde. De voorwaardelijke instructie wordt uitgevoerd op basis van de waarde waar of onwaar wanneer if-else- en if-elseif-instructies worden gebruikt om de voorwaardelijke instructie in de programmering te schrijven. Awk ondersteunt alle soorten voorwaardelijke instructies zoals andere programmeertalen.  Hoe verschillende voorwaardelijke instructies kunnen worden gebruikt in de awk-opdracht, wordt in deze zelfstudie getoond.

Syntaxis:

De syntaxis voor vier soorten voorwaardelijke instructies wordt hieronder vermeld:.

  1. if-verklaring
als (voorwaarde)
uitspraak

De instructie wordt uitgevoerd wanneer de if-voorwaarde true retourneert.

  1. if-else verklaring
als (voorwaarde)
verklaring-1

anders
verklaring-2

De instructie-1 wordt uitgevoerd wanneer de if-voorwaarde waar is en de instructie-2 wordt uitgevoerd wanneer de if-retour onwaar is.

  1. if-elseif statement
als (voorwaarde)
verklaring-1

anders
verklaring-2

anders
verklaring-3

… .
anders
verklaring-n

Deze voorwaardelijke instructie wordt gebruikt voor het uitvoeren van een instructie op basis van meerdere if-voorwaarde. Als de eerste voorwaarde onwaar is, wordt de tweede voorwaarde gecontroleerd. Als de tweede voorwaarde onwaar is, wordt de derde voorwaarde gecontroleerd, enzovoort. Als alle voorwaarden false retourneren, wordt de instructie van else part uitgevoerd.

  1. ternair (?:) operator
(staat) ? verklaring-1: verklaring-2

Ternaire operator kan worden gebruikt als alternatief voor if-else-statement. Als de voorwaarde waar is, wordt statement-1 uitgevoerd en als de voorwaarde onwaar is, wordt statement-2 uitgevoerd.

Voorbeeld-1: Simple if in awk . gebruiken

Maak een tekstbestand met de naam werknemer.tekst met de volgende inhoud:. Stel dat u de afdelingsnaam, leeftijd en salaris moet achterhalen van de werknemer wiens id 11002 is.

werknemer.tekst

11001  Verkoop     45   $ 3000
11002  HR        32   $1500
11003  Marketing 26   $1200
11004  HR        25   $2500

Een eenvoudige if-voorwaarde wordt gebruikt in het volgende script om de id 11002 in het eerste veld van het bestand te zoeken. Als de voorwaarde waar wordt, worden de waarden van de andere velden van de overeenkomstige regel afgedrukt, anders wordt er niets afgedrukt.

$ awk '
als($1 =="11002")

print "Afdelingsnaam: ",$2,"\n";
print "Leeftijd: ",$3,"\n";
print "Salaris: ",$4,"\n";
 

' medewerker.tekst

Uitgang:

De id, 1102 bestaat in het bestand. Dus het drukte de andere waarden van de werknemer af.

Voorbeeld-2: if-else gebruiken in awk

Stel, u wilt de salarisgegevens afdrukken van de werknemers met een leeftijd lager dan of gelijk aan 40 en de leeftijdsgegevens van andere werknemers afdrukken. Het volgende awk-script kan deze taak uitvoeren:. Er is maar één medewerker in werknemer.tekst dossier waarvan de leeftijd hoger is dan 40 en de leeftijd van alle andere werknemers lager is dan 40.

$ awk '
als ($ 3 <= 40)

print "Het salaris van ",$1, " is ", $4, "\n"

anders

print "De leeftijd van ",$1, " is ", $3, "\n"

 
' medewerker.tekst

Uitgang:

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

Voorbeeld-3: if-elseif gebruiken in awk-script

Maak een tekstbestand met de naam person.txt met de volgende inhoud.

persoon.tekst

JACKSON     Man      Zakelijk
MARTIN      Man      Diensthouder
LILY        Vrouw    Manager
ROBINSON    Man      CEO

Maak een awk-bestand met de naam if_elseif.awk met de volgende code om de favoriete kleur af te drukken van elke persoon wiens naam in het bestand voorkomt:. Als-elseif-instructie wordt in het script gebruikt om deze taak uit te voeren. Het script leest de eerste veldwaarde van het bestand, werknemer.tekst en controleer met een bepaalde waarde. Als de eerste als voorwaarde wordt onwaar, dan zal het de tweede controleren als staat en ga zo maar door. Wanneer een van de voorwaarden waar wordt, wordt een kleurwaarde toegewezen. Als alle voorwaarden onwaar worden, Geen wordt toegewezen als de kleurwaarde. De favoriete kleur van elke persoon wordt afgedrukt of “Geen persoon gevonden” wordt afgedrukt als geen persoonsnaam overeenkomt.

if_elseif.awk


naam=$1;
if ( name=="JACKSON" ) color="Blauw";
else if (name=="MARTIN") color="Black";
anders if (name=="LILY") color="Rood";
else if (name=="ROBINSON") color="Wit";
anders kleur = "Geen";
 
als (kleur)!="Geen") print "De favoriete kleur van", naam, "is", kleur;
anders print "Geen persoon gevonden";
 

Voer de volgende opdracht uit om het bestand if_elseif . uit te voeren.awk met persoon.tekst

$ awk -f if_elseif.awk persoon.tekst

Uitgang:

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

Voorbeeld-4: ternaire operator gebruiken in awk

Het derde veld van persoon.tekst bestand bevat het beroep van elke persoon. De volgende ternaire operator leest elke regel van het bestand en matcht de derde veldwaarde met "Manager”. Als de waarde overeenkomt, wordt de naam van de persoon afgedrukt en anders wordt het geslacht van de persoon afgedrukt.

$ awk ' print ($3=="Manager") ? "Naam is" $1: "Geslacht is" $2' persoon.tekst

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Eén persoon met "Beroep van manager bestaat in de" persoon.tekst. Dus de naam van één persoon wordt afgedrukt en het geslacht wordt afgedrukt voor andere personen.

Voorbeeld-5: Meerdere voorwaarden gebruiken in if-statement

Logische OR en Logische AND kunnen worden gebruikt om meerdere voorwaarden te definiëren in de voorwaardelijke instructie van awk-script. Het volgende awk-script leest elke regel van: werknemer.tekst en controleert de leeftijd en aanduiding met bepaalde waarden. Logische AND wordt gebruikt in de als staat. Wanneer de leeftijdswaarde groter is dan of gelijk is aan 30 en de aanduiding "HR" is, worden de bijbehorende werknemers-ID en het salaris afgedrukt.

$ awk ' if ($3 >= 30 && $2 == "HR") print "Werknemer-ID: ",
$1, " en ", "Salaris: ", $4, "\n";' werknemer.tekst

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Er is slechts één werknemer met de aanduiding “HR” in werknemer.tekst. ID- en salarisgegevens voor deze werknemer worden hier afgedrukt.

Conclusie:

Het meest voorkomende gebruik van de voorwaardelijke instructie van een standaardprogrammering wordt ondersteund door het awk-commando. Hoe u enkele en meerdere voorwaarden in awk kunt gebruiken, wordt hier uitgelegd aan de hand van zeer eenvoudige voorbeelden. Ik hoop dat de leerling na het oefenen van deze voorbeelden in staat zal zijn om de voorwaardelijke instructie correct te gebruiken in het awk-script.

Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...
Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...