AWK-Basic Examples

AWK-Basic Examples

advertenties

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.

advertenties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *