AWK – Basic Examples
i det här kapitlet beskrivs flera användbara AWK-kommandon och deras lämpliga exempel. Tänk på en textfil märken.txt som ska bearbetas med följande innehåll –
1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
skriva ut kolumn eller fält
Du kan instruera AWK att skriva ut endast vissa kolumner från inmatningsfältet., Följande exempel visar detta −
exempel
$ awk '{print $3 "\t" $4}' marks.txt
När du kör den här koden får du följande resultat –
utgång
Physics 80Maths 90Biology 87English 85History 89
i filmärkena.txt, den tredje kolumnen innehåller ämnesnamnet och den fjärde kolumnen innehåller de märken som erhållits i ett visst ämne. Låt oss skriva ut dessa två kolumner med hjälp av AWK print kommando. I ovanstående exempel representerar $3 och $4 de tredje respektive fjärde fälten från inmatningsposten.
skriva ut alla linjer
som standard skriver AWK ut alla linjer som matchar mönstret.,
exempel
$ awk '/a/ {print $0}' marks.txt
När du kör den här koden får du följande resultat −
utgång
2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
i ovanstående exempel söker vi formulärmönster a. När en mönstermatch lyckas, utför den ett kommando från kroppsblocket. I avsaknad av en body block-standard åtgärder vidtas som skrivs ut posten. Därför ger följande kommando samma resultat −
exempel
$ awk '/a/' marks.txt
skriva ut kolumner efter mönster
När en mönstermatch lyckas skriver AWK ut hela posten som standard., Men du kan instruera AWK att skriva ut endast vissa fält. Till exempel skriver följande exempel ut det tredje och fjärde fältet när en mönstermatchning lyckas.
exempel
$ awk '/a/ {print $3 "\t" $4}' marks.txt
När du kör den här koden får du följande resultat −
utmatning
Maths 90Biology 87English 85History 89
Utskriftskolumn i valfri ordning
Du kan skriva ut kolumner i valfri ordning. Till exempel skriver följande exempel ut den fjärde kolumnen följt av den tredje kolumnen.,
exempel
$ awk '/a/ {print $4 "\t" $3}' marks.txt
När du kör ovanstående kod får du följande resultat −
utgång
90 Maths87 Biology85 English89 History
räkna och skriva ut matchat mönster
Låt oss se ett exempel där du kan räkna och skriva ut antalet linjer för vilka en mönstermatch lyckades.
exempel
$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt
När du kör den här koden får du följande resultat −
utgång
Count = 4
i det här exemplet ökar vi värdet på räknaren när en mönstermatch lyckas och vi skriver ut detta värde i SLUTBLOCKET., Observera att till skillnad från andra programmeringsspråk är det inte nödvändigt att deklarera en variabel innan den används.
skriva ut rader med fler än 18 tecken
låt oss bara skriva ut de rader som innehåller mer än 18 tecken.
exempel
$ awk 'length($0) > 18' marks.txt
När du kör den här koden får du följande resultat −
utgång
3) Shyam Biology 874) Kedar English 85
AWK tillhandahåller en inbyggd längdfunktion som returnerar strängens längd. $ 0 variabel lagrar hela linjen och i avsaknad av ett kroppsblock tas standardåtgärder, dvs utskriftsåtgärden., Därför, om en rad har mer än 18 tecken, resulterar jämförelsen sant och linjen skrivs ut.