Awk

Hvordan bruke betinget uttalelse i awk-kommando

Hvordan bruke betinget uttalelse i awk-kommando
Betinget uttalelse brukes i ethvert programmeringsspråk for å utføre en uttalelse basert på en bestemt tilstand. Den betingede setningen kjøres basert på verdien true eller false når if-else og if-elseif-setninger brukes til å skrive den betingede setningen i programmeringen. Awk støtter alle typer betingede uttalelser som andre programmeringsspråk.  Hvordan forskjellige betingelsesuttalelser kan brukes i awk-kommando, vises i denne veiledningen.

Syntaks:

Syntaksen for fire typer betingede utsagn er nevnt nedenfor.

  1. hvis uttalelse
hvis (tilstand)
uttalelse

Uttalelsen kjøres når if-tilstanden blir sant.

  1. if-else uttalelse
hvis (tilstand)
uttalelse-1

ellers
uttalelse-2

Uttalelsen-1 utføres når if-tilstanden er oppfylt, og setningen-2 utføres når den returneres falsk.

  1. if-elseif uttalelse
hvis (tilstand)
uttalelse-1

eller hvis
uttalelse-2

eller hvis
uttalelse-3

.. .
ellers
uttalelse-n

Denne betingede setningen brukes til å utføre en uttalelse basert på multiple if condition. Hvis den første tilstanden er falsk, sjekker den den andre tilstanden. Hvis den andre tilstanden er falsk, sjekker den den tredje tilstanden og så videre. Hvis alle forhold returnerer falske, vil den utføre erklæringen om annet.

  1. Ternær (?:) operatør
(tilstand) ? uttalelse-1: uttalelse-2

Ternær operatør kan brukes som et alternativ til if-else-uttalelse. Hvis tilstanden stemmer, vil setningen-1 utføre, og hvis tilstanden er falsk, vil setning-2 utføre.

Eksempel 1: Bruk enkelt hvis det er vanskelig

Lag en tekstfil med navnet ansatt.tekst med følgende innhold. Anta at du må finne ut avdelingsnavnet, alderen og lønnen til den ansatte hvis ID er 11002.

ansatt.tekst

11001 Salg 45 $ 3000
11002 HR 32 $ 1500
11003 Markedsføring 26 $ 1200
11004 HR 25 $ 2500

En enkel hvis-betingelse brukes i følgende skript for å søke på id 11002 i det første feltet i filen. Hvis tilstanden blir oppfylt, vil den skrive ut verdiene til de andre feltene på den tilsvarende linjen, ellers blir ingenting skrevet ut.

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

skriv ut "Avdelingsnavn:", $ 2, "\ n";
skriv ut "Alder:", $ 3, "\ n";
skriv ut "Lønn:", $ 4, "\ n";
 

ansatt.tekst

Produksjon:

ID-en, 1102, finnes i filen. Så den trykte de andre verdiene til den ansatte.

Eksempel 2: Bruke if-else i awk

Anta at du vil skrive ut lønnsinformasjonen til de ansatte som har en alder under eller lik 40 og skrive ut aldersinformasjonen til andre ansatte. Følgende awk-skript kan gjøre denne oppgaven. Det er bare en ansatt i ansatt.tekst fil hvis alder er mer enn 40 år og alle andre ansattes alder er under 40 år.

$ awk '
hvis ($ 3 <= 40)

skriv ut "Lønnen på", $ 1, "er", $ 4, "\ n"

ellers

skriv ut "Alderen til", $ 1, "er", $ 3, "\ n"

 
'ansatt.tekst

Produksjon:

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

Eksempel 3: Bruke if-elseif i awk-skript

Opprett en tekstfil med navnet person.tekst med følgende innhold.

person.tekst

JACKSON Male Business
MARTIN mannlig serviceholder
LILY Kvinnelig leder
ROBINSON Mannlig administrerende direktør

Opprett en awk-fil med navnet if_elseif.kjipt med følgende kode for å skrive ut favorittfargen til hver person hvis navn finnes i filen. If-elseif-setning brukes i skriptet for å utføre denne oppgaven. Skriptet vil lese den første feltverdien til filen, ansatt.tekst og sjekk med en bestemt verdi. Hvis den første hvis tilstanden blir falsk, vil den sjekke den andre hvis tilstand og så videre. Når noen hvis tilstanden blir oppfylt, tildeles en fargeverdi. Hvis alle forhold blir falske da Ingen vil bli tildelt som fargeverdi. Favorittfargen til hver person vil skrive ut eller “Fant ingen person” vil skrives ut hvis ingen personnavn stemmer overens.

if_elseif.kjipt


navn = $ 1;
if (name == "JACKSON") color = "Blue";
annet hvis (name == "MARTIN") color = "Black";
annet hvis (name == "LILY") color = "Red";
annet hvis (name == "ROBINSON") color = "White";
else color = "Ingen";
 
hvis (farge!= "Ingen") skriv ut "Favorittfargen til", navn, "er", farge;
annet trykk "Ingen person funnet";
 

Kjør følgende kommando for å utføre filen if_elseif.kjipt med person.tekst

$ awk -f if_elseif.kjipt person.tekst

Produksjon:

Følgende utdata vises etter at du har kjørt kommandoen.

Eksempel 4: Bruke ternær operatør i awk

Det tredje feltet av person.tekst filen inneholder yrket til hver person. Følgende ternære operatør leser hver linje i filen og samsvarer den tredje feltverdien med “sjef”. Hvis verdien samsvarer, vil den skrive ut navnet på personen, ellers vil det skrive ut kjønnet til personen.

$ awk 'print ($ 3 == "Manager") ? "Navn er" $ 1: "Kjønn er" $ 2 'person.tekst

Produksjon:

Følgende utdata vises etter utførelsen av skriptet. En person med "Manager-yrke finnes i person.tekst. Så navnet på en person skrives ut og kjønn skrives ut for andre personer.

Eksempel 5: Bruke flere forhold i if-setningen

Logisk ELLER og Logisk OG kan brukes til å definere flere forhold i betinget uttalelse av awk-skript. Følgende awk-skript leser hver linje av ansatt.tekst og sjekker alder og betegnelse med spesielle verdier. Logisk AND brukes i hvis tilstand. Når aldersverdien er større enn eller lik 30 og betegnelsen er “HR”, vil den tilsvarende ansattes ID og lønn skrives ut.

$ awk 'if ($ 3> = 30 && $ 2 == "HR") skriv ut "Medarbeider-id:",
$ 1, "og", "Lønn:", $ 4, "\ n"; 'ansatt.tekst

Produksjon:

Følgende utdata vises etter utførelsen av skriptet. Det er bare én ansatt med betegnelsen "HR" i ansatt.tekst. Id og lønnsinformasjon for denne ansatte er skrevet ut her.

Konklusjon:

De vanligste bruksområdene av betinget uttalelse for standardprogrammering støttes av awk-kommando. Hvordan du kan bruke enkle og flere forhold i awk forklares ved å bruke veldig enkle eksempler her. Håper at etter å ha praktisert disse eksemplene, vil eleven kunne bruke betinget uttalelse riktig i awk-skript.

Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...
Hvordan øke FPS i Linux?
FPS står for Bilder per sekund. FPSs oppgave er å måle bildefrekvensen i videoavspilling eller spillprestasjoner. Med enkle ord betegnes antall uavbru...