– AWK – Grunnleggende Eksempler

– AWK – Grunnleggende Eksempler

Annonser

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.

Annonser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *