AWK – Grundlæggende Eksempler

AWK – Grundlæggende Eksempler

Reklamer

Dette kapitel beskriver en række nyttige AWK-kommandoer og deres relevante eksempler. Overvej en tekstfil mærker.txt at blive behandlet med følgende indhold −

1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

Udskrivning Kolonne eller Felt

Du kan instruere AWK kun at udskrive bestemte kolonner fra input-feltet., Følgende eksempel viser dette-

eksempel

$ awk '{print $3 "\t" $4}' marks.txt

Når du udfører denne kode, får du følgende resultat −

Output

Physics 80Maths 90Biology 87English 85History 89

i filmærkerne.t .t, den tredje kolonne indeholder emnenavnet, og den fjerde kolonne indeholder de mærker, der er opnået i et bestemt emne. Lad os udskrive disse to kolonner ved hjælp af A .k print kommando. I ovenstående eksempel repræsenterer $3 og $ 4 henholdsvis det tredje og det fjerde felt fra input-posten.

udskrivning af alle linjer

som standard udskriver a .k alle de linjer, der matcher mønsteret.,

eksempel

$ awk '/a/ {print $0}' marks.txt

Når du udfører denne kode, får du følgende resultat −

Output

2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89

i ovenstående eksempel søger vi formmønster a. Når et mønster match lykkes, udfører det en kommando fra kropsblokken. I mangel af et organ blok-standard handling er taget som er udskrive posten. Derfor giver følgende kommando det samme resultat-

eksempel

$ awk '/a/' marks.txt

udskrivning af kolonner efter mønster

Når et mønster match lykkes, udskriver a .k hele posten som standard., Men du kan instruere a .k til kun at udskrive bestemte felter. For eksempel udskriver følgende eksempel det tredje og fjerde felt, når et mønster match lykkes.

eksempel

$ awk '/a/ {print $3 "\t" $4}' marks.txt

Når du udfører denne kode, får du følgende resultat −

Output

Maths 90Biology 87English 85History 89

Udskrivningskolonne i vilkårlig rækkefølge

Du kan udskrive kolonner i vilkårlig rækkefølge. For eksempel udskriver følgende eksempel den fjerde kolonne efterfulgt af den tredje kolonne.,

Eksempel

$ awk '/a/ {print $4 "\t" $3}' marks.txt

På udførelse af ovenstående kode, får du følgende resultat −

Lyd

90 Maths87 Biology85 English89 History

Optælling og Udskrivning Matchede Mønster

Lad os se et eksempel, hvor du kan tælle, og print de antal linjer, som en mønster matcher lykkedes.

eksempel

$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt

Når du udfører denne kode, får du følgende resultat −

Output

Count = 4

i dette eksempel øger vi værdien af tæller, når et mønster match lykkes, og vi udskriver denne værdi i SLUTBLOKKEN., Bemærk, at i modsætning til andre programmeringssprog er der ikke behov for at erklære en variabel, før du bruger den.

Udskrivningslinjer med mere end 18 tegn

lad os kun udskrive de linjer, der indeholder mere end 18 tegn.

Eksempel

$ awk 'length($0) > 18' marks.txt

På udførelse af denne kode, får du følgende resultat −

Lyd

3) Shyam Biology 874) Kedar English 85

AWK giver en indbygget længde funktion, der returnerer længden af strengen. $ 0 variabel gemmer hele linjen, og i mangel af en kropsblok tages standardhandling, dvs.udskrivningshandlingen., Derfor, hvis en linje har mere end 18 tegn, så bliver sammenligningsresultaterne sande, og linjen udskrives.

Reklamer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *