Awk

Variabele gebruiken in awk-opdracht

Variabele gebruiken in awk-opdracht
Variabelen worden gebruikt om elke waarde tijdelijk op te slaan in elke programmeertaal.  Het definiëren van de variabele in de awk-opdracht is vergelijkbaar met bash-scripttaal en het werkt als bash wanneer de shell-variabele wordt gebruikt met een enkel aanhalingsteken en een dubbel aanhalingsteken. De opdracht Awk heeft veel ingebouwde variabelen voor verschillende doeleinden. Hoe door de gebruiker gedefinieerde, ingebouwde en shell-variabelen kunnen worden gebruikt in de awk-opdracht, wordt in deze zelfstudie getoond aan de hand van verschillende voorbeelden.

Evoorbeeld -1: variabele definiëren en afdrukken

'awk'-opdracht gebruikt de optie '-v' om de variabele te definiëren. In dit voorbeeld is de mijnvar variabele is gedefinieerd in het 'awk'-commando om de waarde op te slaan, “AWK-variabele” dat wordt later afgedrukt. Voer de volgende opdracht uit vanaf de terminal om de uitvoer te controleren:.

$ echo | awk -v mijnvar='AWK variabele' 'print mijnvar'

Uitgang:

Voorbeeld - 2: Shell-variabele gebruiken in awk met een enkel aanhalingsteken en een dubbel aanhalingsteken

Het voorbeeld laat zien hoe de shell-variabele kan worden gebruikt 'awk'-commando. Hier, een shell-variabele, mijnvar wordt gedeclareerd met de waarde, "Linux-tip" in het eerste commando. '$'-symbool wordt gebruikt met de naam van een shell-variabele om de waarde te lezen. Het tweede commando leest de variabele, $myval met een enkel aanhalingsteken(') en het derde commando leest de variabele $myvar met dubbele aanhalingstekens(“) in de 'awk'-instructie.

$ myvar="Linux-hint"
$ echo | awk -v awkvar='$mijnvar' ' print awkvar; '
$ echo | awk -v awkvar="$mijnvar" ' print awkvar; '

Uitgang:

In de uitvoer wordt getoond dat de waarde van $myvar niet kan worden gelezen wanneer deze is omsloten door een enkel aanhalingsteken (') en de uitvoer is $mijnvar. De waarde van $mijnvar wordt afgedrukt wanneer het wordt omsloten door een dubbel aanhalingsteken (“).

Voorbeeld - 3: ARGC-variabele lezen in awk

ARGC-variabele wordt gebruikt om het totale aantal opdrachtregelargumenten te tellen. Drie variabelen op de opdrachtregel (t1, t2, t3) worden doorgegeven in het volgende awk-script. Hier is het totale aantal argumenten met het script 4. Voer het script uit vanaf de terminal.

$ awk 'BEGINprint "Totaal argumenten=",ARGC' t1 t2 t3

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Voorbeeld - 4: Bestandsinhoud lezen op argumentvariabelen

Maak een tekstbestand met de naam klant.tekst met de volgende inhoud om dit voorbeeld te oefenen. Hier wordt elk veld van het bestand gescheiden door single tabblad ruimte.

klant.tekst

ID        Naam
103847    John Michael
209485    Watson
974732    Mira Hossain

Het Awk-commando kan elk veld uit elk tekstbestand lezen op argumentvariabelen. Er zijn twee velden in klant.tekst het dossier. Dit zijn ID en naam. Het volgende script drukt deze twee velden af ​​op argumentvariabelen, $1 en $2 door twee te scheiden tabblad spaties. Voer het script uit vanaf de terminal.

$ kat klant.tekst
$ kat klant.txt | awk ' print $1 "\t\t" $2;'

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van de bovenstaande opdrachten:.

Voorbeeld- 5: ingebouwde variabele, FS en veldscheidingsoptie gebruiken met awk-opdracht

FS-variabele wordt gebruikt in de opdracht awk als veldscheidingsteken. Spatie wordt gebruikt als een standaardwaarde van FS. De volgende opdracht zal het bestand lezen: klant.tekst spatie gebruiken als veldscheidingsteken en de bestandsinhoud afdrukken. Voer de opdracht uit vanaf de terminal.

$ awk FS-klant.tekst

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

De opdracht Awk kan andere tekens als veldscheidingsteken gebruiken door de optie '-F' te gebruiken. Maak een tekstbestand met de naam Product.tekst met de volgende inhoud waarbij ':' wordt gebruikt als veldscheidingsteken.

Product.tekst

101: Taart: $30
102:Potlood: $5
103:Zeep:$3
104:Shampoo:$10

Er zijn drie velden in het bestand, Product.tekst die product-ID, naam en prijs bevat. De volgende awk-opdracht drukt alleen het tweede veld van elke regel af. Voer de opdrachten uit vanaf de terminal.

$ kattenproduct.tekst
$ awk -F ':' ' print $2 ' product.tekst

Uitgang:

Hier drukte het eerste commando de inhoud van: Product.tekst en de tweede opdracht drukte alleen het tweede veld van het bestand af.

Voorbeeld - 6: Gebruik van ingebouwde variabele, NR met awk-opdracht

NR-variabele wordt gebruikt in de opdracht awk om het totale aantal records of regels van een bestand te tellen. Maak een tekstbestand met de naam leerling.tekst om de functie van deze variabele te testen.

leerling.tekst

Naam      Batch     Semester
Jan      20        3
Mira      22        1
Ella      18
Karel    15        8

Het volgende awk-script drukt de eerste drie regels af van: Product.tekst het dossier. Hier wordt een voorwaarde toegevoegd met behulp van de NR-variabele. De opdracht drukt die regels af waar de NR-waarde kleiner is dan 4. Voer het script uit vanaf de terminal.

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

$ kat student.txt | awk 'NR < 4'

Voorbeeld - 7: Ingebouwde variabele gebruiken, NF met awk-opdracht

NF-variabele wordt gebruikt in de opdracht awk om het totale aantal velden in elke regel van een bestand te tellen count. Het volgende awk-script wordt toegepast op het bestand:, leerling.tekst die is gemaakt in het vorige voorbeeld. Het script drukt die regels af van leerling.tekst bestand waar de totale velden kleiner zijn dan 3. Voer de opdracht uit vanaf de terminal.

$ kat student.txt | awk 'NF < 3'

Uitgang:

Er is slechts één regel in het bestand waar het totale aantal velden minder is dan 3 dat als uitvoer wordt afgedrukt.

Voorbeeld - 8: ingebouwde variabele OFS gebruiken met awk-opdracht

OFS-variabele wordt gebruikt in awk-opdracht om uitvoerveldscheidingsteken toe te voegen aan de uitvoer. Product.tekst bestand wordt in dit voorbeeld gebruikt om het gebruik van de OFS-variabele te tonen. ':' wordt gebruikt als veldscheidingsteken in product.txt-bestand. Het volgende awk-script gebruikte '->' als OFS-waarde en het tweede en derde veld van het bestand worden afgedrukt door dit scheidingsteken toe te voegen. Voer de opdrachten uit vanaf de terminal.

$ kattenproduct.tekst
$ awk -F ':' 'BEGINOFS="->"; print $2,$3;' product.tekst

Uitgang:

De volgende uitvoer wordt afgedrukt na het uitvoeren van de opdrachten:.

Conclusie:

De meest voorkomende toepassingen van awk-variabelen worden in deze zelfstudie uitgelegd. Ik hoop dat de lezer na het oefenen van deze tutorial in staat zal zijn om awk-variabelen correct in het script te gebruiken.

OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...