Dette kapitlet beskriver flere nyttige AWK kommandoer og deres aktuelle eksempler. Vurdere en tekst-fil merker.txt til å bli behandlet med følgende innhold: −
1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
Utskrift Kolonne eller Felt
Du kan instruere AWK å skrive ut bare enkelte kolonner fra input-feltet., Følgende eksempel viser dette −
Eksempel
$ awk '{print $3 "\t" $4}' marks.txt
På for å utføre denne koden, kan du få følgende resultat −
Output
Physics 80Maths 90Biology 87English 85History 89
I filen merker.txt, den tredje kolonnen inneholder emnet navn og den fjerde kolonnen inneholder merkene som er innhentet i et bestemt fag. La oss skrive ut disse to kolonner ved hjelp av AWK skriv ut-kommandoen. I ovennevnte eksempel, $3 og $4 representerer den tredje og fjerde felt henholdsvis fra input-posten.
Skrive ut Alle Linjene
som standard, AWK skriver ut alle linjer som samsvarer med mønsteret.,
Eksempel
$ awk '/a/ {print $0}' marks.txt
På for å utføre denne koden, kan du få følgende resultat −
Output
2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
I eksempelet ovenfor, kan vi søker å danne et mønster. Når et mønster match lykkes, utføres en kommando fra kroppen blokk. I fravær av en kropp blokk − standard handling som er skrive inn. Derfor, den følgende kommandoen gir samme resultat −
Eksempel
$ awk '/a/' marks.txt
Utskrift Kolonner av Mønster
Når et mønster match lykkes, AWK skriver hele posten som standard., Men du kan be AWK å skrive ut bare enkelte felt. For eksempel, følgende eksempel skriver ut den tredje og fjerde felt når et mønster match lykkes.
Eksempel
$ awk '/a/ {print $3 "\t" $4}' marks.txt
På for å utføre denne koden, kan du få følgende resultat −
Output
Maths 90Biology 87English 85History 89
Utskrift Kolonne i hvilken som Helst Rekkefølge
Du kan skrive ut kolonner i hvilken som helst rekkefølge. For eksempel, følgende eksempel skriver ut den fjerde kolonnen, etterfulgt av det tredje kolonne.,
Eksempel
$ awk '/a/ {print $4 "\t" $3}' marks.txt
På for å utføre koden ovenfor, kan du få følgende resultat −
Output
90 Maths87 Biology85 English89 History
Telle og Skrive ut Matchet Mønster
La oss se på et eksempel der du kan telle og skrive ut antall linjer som et mønster kamp lyktes.
Eksempel
$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt
På for å utføre denne koden, kan du få følgende resultat −
Output
Count = 4
I dette eksemplet, vi tilvekst verdien av telleren når et mønster match lykkes og vi skriv ut denne verdien i SLUTTEN blokk., Merk at i motsetning til andre programmeringsspråk, det er ikke nødvendig å deklarere en variabel før du bruker det.
Utskrift Linjer med Mer enn 18 Tegn
La oss bare skrive ut de linjene som inneholder mer enn 18 tegn.
Eksempel
$ awk 'length($0) > 18' marks.txt
På for å utføre denne koden, kan du få følgende resultat −
Output
3) Shyam Biology 874) Kedar English 85
AWK gir en innebygd lengde funksjon som returnerer lengden av strengen. $0 variabel lagrer hele linjen, og i fravær av en kropp blokk, standard handlingen er tatt, dvs., ut handlingen., Derfor, hvis en linje har mer enn 18 tegn, så den sammenligningen resultater sann og linjen blir skrevet ut.