Det er forskjellige bruksområder av 'Awk' -kommandoen i Linux. For eksempel kan den brukes til å skrive ut innholdet i en tekstfil. Den første linjen med mange tekstfiler inneholder overskriften på filen, og noen ganger må den første linjen hoppes over når du skriver ut innholdet i filen. I denne opplæringen vil vi vise deg hvordan du kan utføre denne oppgaven ved å bruke 'AWK' -kommandoen.
Lag en tekstfil
For å følge med med denne opplæringen, oppretter du en tab-avgrenset tekstfil som heter bokliste.tekst Med følgende innhold. Denne filen inneholder en liste over bøker med tilhørende forfattere. I denne opplæringen vil vi vise deg hvordan du skriver ut forskjellige deler av denne filen etter å ha hoppet over den første linjen.
Cybersikkerhet med Bash Paul Troncone, Carl AlbingEksempel 1: Hopp over den første linjen i en fil ved hjelp av NR og '>' -operatøren
NR -variabelen indikerer antall poster i en fil. Følgende 'AWK' -kommando bruker NR -variabelen for å hoppe over den første linjen i en fil. Verdien av NR er 1 for den første linjen. Følgende kommando vil skrive ut linjer som NR -verdien er større enn 1.
$ katt bokliste.tekst
$ awk '(nr> 1)' bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen inkluderer alle andre linjer enn den første linjen i filen.
Eksempel 2: Hopp over den første linjen ved å bruke NR og '!= 'Operatør
Følgende 'awk' -kommando ligner på det i forrige eksempel. Imidlertid '!= 'Sammenligningsoperatør brukes her i stedet for'> '.
$ katt bokliste.tekst
$ awk 'nr!= 1 'bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser alle andre linjer enn den første linjen i filen.
Eksempel 3: Hopp over den første linjen i en fil ved å bruke en betinget uttalelse
Følgende 'awk' -kommando vil skrive ut linjene i filen hvis IF -setningen er sann. Her vil IF -uttalelsen bare være sant når NR -verdien ikke tilsvarer 1.
$ katt bokliste.tekst
$ awk 'if (nr!= 1) print 'bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen inkluderer alle linjer bortsett fra den første linjen i filen.
Eksempel 4: Skriv ut boknavnene fra filen, men hopp over den første linjen
To 'awk' kommandoer brukes i dette eksemplet for å skrive ut alle boknavn bortsett fra det første. Kommandoen 'AWK' vil lese den første kolonnen fra filen basert på feltets separator (\ t) og sende utdataene til den andre 'AWK' -kommandoen. Den andre 'AWK' -kommandoen vil skrive ut ønsket utgang.
$ katt bokliste.tekst
$ awk -f "\ t" 'skriv ut $ 1' bokliste.txt | awk 'nr!= 1 print '
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser alle boknavnene bortsett fra den første boken.
Eksempel 5: Formater filinnholdet etter å ha hoppet over den første linjen
Alternativet '-F', NR-variabel og Printf-funksjonen brukes i følgende 'AWK' -kommando for å generere formatert utgang etter å ha hoppet over den første linjen. Kommandoen vil dele filinnholdet i kolonner basert på \ t, og printf vil skrive ut første og andre kolonner når NR -verdien er minst 2.
$ katt bokliste.tekst
$ awk -f '\ t' 'nr> = 2 printf " %30s %20s \ n", $ 1, $ 2' bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser det formaterte innholdet i filen, unntatt den første linjen i filen.
Eksempel 6: Skriv ut boknavnene etter å ha hoppet over den første linjen med NR og NF
Følgende 'awk' -kommando bruker alternativet '-f' og NR og NF for å skrive ut boknavnene etter å ha hoppet over den første boken. Alternativet '-f' brukes til å skille innholdet i filbasen på \ t. NR brukes til å hoppe over den første linjen, og NF brukes bare til å skrive ut den første kolonnen.
$ katt bokliste.tekst
$ awk -f '\ t' 'nr> 1 && nf = 1' bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen inkluderer alle boknavnene i filen bortsett fra den i den første boken.
Eksempel 7: Skriv ut de formaterte forfatternavnene etter å ha hoppet over den første linjen
Følgende 'AWK' -kommando bruker alternativet '-F' og en betinget uttalelse for å skrive ut forfatternavn etter å ha hoppet over den første linjen. Her brukes NR -verdien i IF -tilstanden. Her vil "Forfatternavn: \ n \ n" bli skrevet ut som den første linjen i stedet for innholdet fra første linje. Forfatterens navn fra filen vil bli skrevet ut for de andre verdiene til NR.
$ katt bokliste.tekst
$ awk -f '\ t' 'if (nr == 1) printf "\ nauthor name: \ n \ n"; ellers printf "%s \ n", $ 2 'bokliste.tekst
Følgende utgang vil bli produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser teksten, "Forfatternavn:" med en ny linje, og alle forfatternavn er skrevet ut bortsett fra den første.
Konklusjon
Den første linjen i en fil kan hoppes over ved å bruke forskjellige Linux -kommandoer. Som vist i denne opplæringen, er det forskjellige måter å hoppe over den første linjen i en fil ved å bruke 'AWK' -kommandoen. Notabelt.