Awk

Hur man använder villkorligt uttalande i awk-kommando

Hur man använder villkorligt uttalande i awk-kommando
Villkorligt uttalande används i vilket programmeringsspråk som helst för att utföra ett uttalande baserat på ett visst tillstånd. Det villkorliga uttalandet körs baserat på värdet true eller false när if-else och if-elseif-uttalanden används för att skriva det villkorliga uttalandet i programmeringen. Awk stöder alla typer av villkorliga uttalanden som andra programmeringsspråk.  Hur olika villkorliga uttalanden kan användas i awk-kommando visas i denna handledning.

Syntax:

Syntaxen för fyra typer av villkorliga uttalanden nämns nedan.

  1. if uttalande
om (villkor)
påstående

Uttalandet körs när if-villkoret är sant.

  1. if-else uttalande
om (villkor)
uttalande-1

annan
uttalande-2

Uttalningen-1 körs när if-villkoret är sant och uttalandet-2 körs när om det är felaktigt.

  1. if-elseif uttalande
om (villkor)
uttalande-1

elseif
uttalande-2

elseif
uttalande-3

.. .
annan
uttalande-n

Detta villkorliga uttalande används för att utföra ett uttalande baserat på flera om villkor. Om det första villkoret är falskt kontrollerar det det andra villkoret. Om det andra villkoret är falskt kontrollerar det det tredje villkoret och så vidare. Om alla villkor returnerar falska, kommer det att utföra uttalandet om en annan del.

  1. Ternary (?:) operatör
(tillstånd) ? uttalande-1: uttalande-2

Ternär operatör kan användas som ett alternativ till if-else-uttalande. Om villkoret stämmer kommer uttalande-1 att utföras och om villkoret är falskt kommer uttalande-2 att utföras.

Exempel 1: Använda enkel om i awk

Skapa en textfil med namnet emplyee.Text med följande innehåll. Antag att du måste ta reda på avdelningens namn, ålder och lön för den anställd vars ID är 11002.

anställd.Text

11001 Försäljning 45 $ 3000
11002 HR 32 $ 1500
11003 Marknadsföring 26 $ 1200
11004 HR 25 $ 2500

Ett enkelt if-tillstånd används i följande skript för att söka id 11002 i det första fältet i filen. Om villkoret blir sant kommer det att skriva ut värdena för de andra fälten på motsvarande rad, annars skrivs ingenting ut.

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

skriva ut "Avdelningsnamn:", $ 2, "\ n";
skriva ut "Ålder:", $ 3, "\ n";
skriv ut "Lön:", $ 4, "\ n";
 

anställd.Text

Produktion:

Id, 1102 finns i filen. Så det skrev ut de anställdas andra värden.

Exempel 2: Använda if-else i awk

Antag att du vill skriva ut löneinformationen för de anställda vars ålder är lägre än eller lika med 40 och skriva ut åldersinformationen för andra anställda. Följande awk-skript kan göra den här uppgiften. Det finns bara en anställd i anställd.Text fil vars ålder är över 40 år och alla andra anställdas ålder är lägre än 40 år.

$ awk '
if ($ 3 <= 40)

skriva ut "Lönen på", $ 1, "är", $ 4, "\ n"

annan

skriv ut "Ålder", $ 1, "är", $ 3, "\ n"

 
anställd.Text

Produktion:

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

Exempel 3: Använda if-elseif i awk-skript

Skapa en textfil med namnet person.txt med följande innehåll.

person.Text

JACKSON Manlig verksamhet
MARTIN manlig servicehållare
LILY Kvinnlig chef
ROBINSON Manlig VD

Skapa en awk-fil med namnet if_elseif.awk med följande kod för att skriva ut favoritfärgen för varje person vars namn finns i filen. If-elseif-uttalande används i skriptet för att utföra den här uppgiften. Skriptet läser filens första fältvärde, anställd.Text och kontrollera med ett visst värde. Om den första om villkoret blir falskt kommer det att kontrollera det andra om tillstånd och så vidare. När något om villkoret blir sant kommer ett färgvärde att tilldelas. Om alla villkor blir falska då Ingen tilldelas som färgvärde. Favoritfärgen för varje person kommer att skrivas ut eller “Ingen person hittades” skrivs ut om inget personnamn matchar.

if_elseif.awk


namn = $ 1;
if (name == "JACKSON") color = "Blue";
annars om (namn == "MARTIN") färg = "Svart";
annars om (namn == "LILY") färg = "Röd";
annars om (namn == "ROBINSON") färg = "Vit";
else color = "Ingen";
 
om (färg!= "Ingen") tryck "Favoritfärgen på", namn, "är", färg;
annars tryck "Ingen person hittades";
 

Kör följande kommando för att köra filen if_elseif.besvär med personen.Text

$ awk -f if_elseif.besvärlig person.Text

Produktion:

Följande utdata visas när kommandot har körts.

Exempel 4: Använda ternär operatör i awk

Det tredje fältet i person.Text filen innehåller varje persons yrke. Följande ternära operatör läser varje rad i filen och matchar det tredje fältvärdet med “Chef”. Om värdet matchar kommer det att skriva ut namnet på personen och annars kommer det att skriva ut personens kön.

$ awk 'print ($ 3 == "Manager") ? "Namn är" $ 1: "Kön är" $ 2 person.Text

Produktion:

Följande utdata visas efter att manuset har körts. En person med "chefsyrke finns i person.Text. Så namnet på en person skrivs ut och kön skrivs ut för andra personer.

Exempel 5: Använda flera villkor i if-uttalandet

Logisk ELLER och Logisk OCH kan användas för att definiera flera villkor i villkorligt uttalande av awk-skript. Följande awk-skript läser varje rad av anställd.Text och kontrollerar ålder och beteckning med särskilda värden. Logisk AND används i om tillstånd. När åldersvärdet är större än eller lika med 30 och beteckningen är ”HR” skrivs motsvarande anställd id och lön ut.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") skriv ut "Anställd-id:",
$ 1, "och", "Lön:", $ 4, "\ n"; 'anställd.Text

Produktion:

Följande utdata visas efter att manuset har körts. Det finns bara en anställd med beteckningen "HR" i anställd.Text. Id och löneinformation för denna anställd skrivs ut här.

Slutsats:

De vanligaste användningarna av villkorliga uttalanden för standardprogrammering stöds av kommandot awk. Hur du kan använda enstaka och flera förhållanden i awk förklaras med hjälp av mycket enkla exempel här. Hoppas att efter att ha tränat dessa exempel kan eleven använda villkorligt uttalande ordentligt i awk-skript.

Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...