AWK – Basic Examples

AWK – Basic Examples

annonser

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.

annonser

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *