Dit hoofdstuk beschrijft een aantal nuttige awk commando ‘ s en hun geschikte voorbeelden. Overweeg een tekstbestandmarkeringen.txt te verwerken met de volgende inhoud –
1) Amit Physics 802) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
kolom of veld afdrukken
u kunt awk opdracht geven om alleen bepaalde kolommen uit het invoerveld af te drukken., Het volgende voorbeeld laat dit zien –
voorbeeld
$ awk '{print $3 "\t" $4}' marks.txt
bij het uitvoeren van deze code krijgt u het volgende resultaat −
uitvoer
Physics 80Maths 90Biology 87English 85History 89
In de bestandsmarkeringen.txt, de derde kolom bevat de naam van het onderwerp en de vierde kolom bevat de merken verkregen in een bepaald onderwerp. Laten we deze twee kolommen afdrukken met het awk print Commando. In het bovenstaande voorbeeld vertegenwoordigen $3 en $4 respectievelijk het derde en het vierde veld van het invoerrecord.
alle regels
standaard drukt AWK alle regels af die overeenkomen met het patroon.,
voorbeeld
$ awk '/a/ {print $0}' marks.txt
bij het uitvoeren van deze code krijgt u het volgende resultaat −
uitvoer
2) Rahul Maths 903) Shyam Biology 874) Kedar English 855) Hari History 89
in het bovenstaande voorbeeld zoeken we naar Patroon A. als een patroonovereenkomst slaagt, voert het een commando uit vanuit het hoofdblok. Bij afwezigheid van een body block-standaard actie wordt uitgevoerd die print de record. Daarom geeft het volgende commando hetzelfde resultaat-
voorbeeld
$ awk '/a/' marks.txt
kolommen afdrukken op patroon
wanneer een patroonovereenkomst slaagt, drukt awk standaard de gehele record af., Maar u kunt awk opdracht geven om alleen bepaalde velden af te drukken. Het volgende voorbeeld drukt bijvoorbeeld het derde en vierde veld af wanneer een patroonovereenkomst slaagt.
voorbeeld
$ awk '/a/ {print $3 "\t" $4}' marks.txt
bij het uitvoeren van deze code krijgt u het volgende resultaat −
uitvoer
Maths 90Biology 87English 85History 89
kolom afdrukken in elke volgorde
u kunt kolommen in elke volgorde afdrukken. Bijvoorbeeld, het volgende voorbeeld drukt de vierde kolom gevolgd door de derde kolom.,
voorbeeld
$ awk '/a/ {print $4 "\t" $3}' marks.txt
bij het uitvoeren van de bovenstaande code krijgt u het volgende resultaat −
uitvoer
90 Maths87 Biology85 English89 History
tellen en afdrukken gematcht patroon
laat ons een voorbeeld zien waarin u het aantal regels kunt tellen en afdrukken waarvoor een patroonovereenkomst is geslaagd.
voorbeeld
$ awk '/a/{++cnt} END {print "Count = ", cnt}' marks.txt
bij het uitvoeren van deze code krijgt u het volgende resultaat −
uitvoer
Count = 4
In dit voorbeeld verhogen we de waarde van teller wanneer een patroonovereenkomst slaagt en printen we deze waarde in het eindblok., Merk op dat in tegenstelling tot andere programmeertalen, het niet nodig is om een variabele te declareren voordat je deze gebruikt.
regels afdrukken met meer dan 18 tekens
laten we alleen die regels afdrukken die meer dan 18 tekens bevatten.
voorbeeld
$ awk 'length($0) > 18' marks.txt
bij het uitvoeren van deze code krijgt u het volgende resultaat −
uitvoer
3) Shyam Biology 874) Kedar English 85
awk biedt een ingebouwde lengtefunctie die de lengte van de tekenreeks retourneert. $ 0 variabele slaat de hele regel op en bij afwezigheid van een body block wordt standaard actie ondernomen, dat wil zeggen, de afdrukactie., Dus, als een regel meer dan 18 tekens heeft, dan resulteert de vergelijking waar en wordt de lijn afgedrukt.