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.