Hva er NR innebygd awk?
“NR” er en spesiell innebygd variabel av AWK som står for “Antall poster”. Denne variabelen brukes til å håndtere antall poster som er til stede i de spesifiserte filene.
Eksempler på bruk av NR-innebygd AWK i Ubuntu 20.04:
For å lære videre om bruken av NR-innebygd AWK, må du gå gjennom følgende eksempler som er implementert på en Ubuntu 20.04 System. Før vi snakker om disse eksemplene, vil vi imidlertid dele med deg den eksemplet tekstfilen som vi har laget i vår hjemmekatalog som heter Navn.tekst. Denne filen inneholder navnene på noen få individer, etterfulgt av deres respektive aldre. Vi vil bruke den samme tekstfilen for å demonstrere alle fire eksemplene. Denne tekstfilen er som følger:
Eksempel 1: Viser linjenumre med postene i en tekstfil:
I dette eksemplet ønsker vi å vise alle postene til måltekstfilen vår slik at hver post blir tilordnet med et spesifikt linjenummer etter en stigende rekkefølge. Du ville ha lagt merke til ovenfor at tekstfilen vi bruker inneholdt noen poster, men de var uten linjetall. Dessuten refererer postene her til de distinkte tekstlinjene som er til stede i en tekstfil. For eksempel, hvis en tekstfil har fem forskjellige linjer, vil vi si at den har fem forskjellige poster. For å gjøre ovennevnte uttalelse mulig, jeg.e., Vis linjenumre sammen med postene til vår måltekstfil, vi vil utføre følgende kommando i vår terminal:
$ awk 'print nr, $ 0' navn.tekst
I denne kommandoen vil nøkkelordet "AWK" fortelle systemet vårt at vi prøver å kjøre en kommando ved hjelp av AWK -skriptspråket. Deretter har vi en "Print" -kommando etterfulgt av "NR" nøkkelordet og "$ 0" spesiell variabel. Nå vil denne delen av kommandoen tjene formålet med å vise linjetall sammen med postene som er til stede i vår måltekstfil. Til slutt har vi gitt navnet på måltekstfilen vår i denne kommandoen slik at den lett kan leses. Vi har utført denne kommandoen bare ved å trykke på enter -tasten.
Du kan enkelt se på terminalen at som et resultat av å utføre denne kommandoen, innholdet i vår måltekstfil, i.e., Alle postene til tekstfilen vår ble vist sammen med deres respektive linjenumre som vist på bildet nedenfor:
Eksempel nr. 2: Viser postene til en tekstfil som ligger innenfor et spesifisert område:
Noen ganger vil du ikke at alle postene til filen skal vises eller behandles videre; Snarere vil du bare bruke postene som ligger innenfor et spesifisert område. Derfor, i dette eksemplet, ønsker vi at alle måltekstfilpostene skal vises på terminalen som ligger innenfor vårt spesifiserte linjenummerområde. For å forstå dette videre, må du først se på følgende kommando som vil bli brukt til å tjene dette formålet:
$ awk 'nr == 4, nr == 8 print nr, $ 0' navn.tekst
I denne kommandoen vil nøkkelordet "AWK" fortelle systemet vårt at vi prøver å kjøre en kommando ved hjelp av AWK -skriptspråket. Deretter har vi 'nr == 4, nr == 8' uttalelse som vil spesifisere utvalget av poster som skal vises, i.e., Ved å bruke denne uttalelsen, vises våre poster fra linjenummer 4 til 8 (inkluderende). Du kan definere dette området i henhold til ditt eget valg. Etter det har vi “Print” -kommandoen etterfulgt av “NR” nøkkelordet og “$ 0” Special Variable. Nå vil denne delen av kommandoen tjene formålet med å vise linjetall sammen med de spesifiserte postene som er til stede i vår måltekstfil. Til slutt har vi gitt navnet på måltekstfilen vår i denne kommandoen slik at den lett kan leses. Vi har utført denne kommandoen bare ved å trykke på enter -tasten.
Du kan enkelt visualisere på terminalen som som et resultat av å utføre denne kommandoen, det spesifikke innholdet i vår måltekstfil, i.e., Alle postene til tekstfilen vår som lå innenfor det spesifiserte området, ble vist sammen med deres respektive linjenumre, som vist på bildet nedenfor:
Eksempel nr. 3: Viser linjenumre med de spesifikke postene i en tekstfil atskilt med "-" spesielle symbol:
For å gjøre innholdet i en tekstfil mer lesbar, kan det være lurt å skille linjenumrene fra postene ved å bruke et hvilket som helst spesielt symbol. Dessuten kan det være lurt å ha en bestemt kolonne med alle postene som skal vises. Vi har designet dette eksemplet for å utdype metoden for å vise linjenumre med den spesifikke kolonnen i postene til en tekstfil atskilt med "-" spesielle symbol. For å oppnå denne typen utdata, må du utføre følgende kommando:
$ awk 'print nr “-”, $ 1' navn.tekst
Denne kommandoen er ganske mye lik kommandoen som vi utførte for vårt første eksempel. Imidlertid er den eneste forskjellen at vi har spesifisert "-" separatoren i den. I stedet for å bruke spesialvariabelen “$ 0”, har vi dessuten benyttet oss av “$ 1” spesialvariabelen, som vil spesifisere at bare den første kolonnen i alle tekstfiloppføringer må skrives ut.
I utdataene nedenfor kan du se at bare den første kolonnen i alle postene til vår måltekstfil ble vist; Linjetallene ble imidlertid pent atskilt fra postene ved hjelp av "-" spesielle symbol.
Eksempel 4: Viser det totale antallet poster i en tekstfil:
Noen ganger vil du kanskje bare at det totale antallet poster av filen skal vises på terminalen. For å gjøre det, trenger du ganske enkelt å utføre følgende kommando:
$ awk 'end print nr' navn.tekst
I denne kommandoen vil nøkkelordet "Slutt" fortelle systemet at det bare trenger å telle antall poster av tekstfilen, og "Print NR" -uttalelsen vil fortelle systemet ditt om å skrive ut det totale antallet poster på terminalen.
Vi vet at vi hadde totalt 10 poster i vår måltekstfil, og dette er også bekreftet fra utgangen fra den ovennevnte kommandoen vist på bildet nedenfor:
Konklusjon:
Denne artikkelen åpnet med en kort introduksjon til AWK Scripting Language. Kruxen i denne guiden var å lære deg bruken av den "NR" spesielle variable innebygde AWK. Først ga vi en oversikt over denne spesielle variabelen, etterfulgt av fire forskjellige eksempler ved hjelp av at du kan forstå bruken. Når du har gått gjennom disse eksemplene, vil du være i en god posisjon til effektivt å bruke denne spesielle variabelen i AWK.