Slik hopper du over den første linjen i en fil ved hjelp av 'awk'

How Skip First Line File Using Awk



Det er forskjellige bruksområder for `awk` -kommandoen i Linux. Den kan for eksempel brukes til å skrive ut innholdet i en tekstfil. Den første linjen i mange tekstfiler inneholder overskriften til 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 utfører denne oppgaven ved å bruke kommandoen `awk '.

Lag en tekstfil

For å følge med denne opplæringen, oppretter du en tabulatoravgrenset tekstfil med navnet bokliste.txt 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 at du har hoppet over den første linjen.







Cybersikkerhet med bash Paul Troncone, Carl Albing

Kommandolinje Kung Fu Jason Cannon

Linux Command Line Travis Booth

Bash i enkle trinn Mike McGrath

Unix i enkle trinn Mike McGrath

Eksempel 1: Hopp over den første linjen i en fil ved hjelp av NR og operatøren ‘>’

NR -variabelen angir antall poster i en fil. Følgende kommando `awk` bruker NR -variabelen til å 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 for.



$kattbokliste.txt

$awk '(NO> 1)'bokliste.txt

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utdataene inkluderer alle andre linjer enn den første linjen i filen.







Eksempel 2: Hopp over den første linjen ved å bruke NR og ‘! =’ Operatoren

Følgende kommando `awk` ligner den i forrige eksempel. Imidlertid brukes sammenligningsoperatoren ‘! =’ Her i stedet for ‘>’.

$kattbokliste.txt

$awk 'NR! = 1'bokliste.txt

Følgende utdata vil bli produsert etter at du har 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 setning

Følgende kommando `awk` vil skrive ut fillinjene hvis if -setningen er sann. Her vil if -setningen bare være sann når NR -verdien ikke er lik 1.

$kattbokliste.txt

$awk '{if (NR! = 1) {print}}'bokliste.txt

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utdataene inkluderer alle linjene 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å feltseparatoren ( t) og sende utgangen til den andre` awk` -kommandoen. Den andre `awk` -kommandoen vil skrive ut ønsket utskrift.

$kattbokliste.txt

$awk -F ' t' '{print $ 1}'bokliste.txt| awk 'NR! = 1 utskrift}'

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utgangen viser alle boknavnene bortsett fra det i den første boken.

Eksempel 5: Formater filinnholdet etter at du har hoppet over den første linjen

‘-F’ -alternativet, NR-variabelen og printf-funksjonen brukes i følgende ‘awk’-kommando for å generere formaterte utdata etter å ha hoppet over den første linjen. Kommandoen vil dele filinnholdet i kolonner basert på t, og printf vil skrive ut den første og andre kolonnen når NR -verdien er minst 2.

$kattbokliste.txt

$awk -F 't' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'bokliste.txt

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utgangen viser filens formaterte innhold, unntatt den første linjen i filen.

Eksempel 6: Skriv ut boknavnene etter at du har hoppet over den første linjen med NR og NF

Følgende kommando `awk` 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 til å skrive ut bare den første kolonnen.

$kattbokliste.txt

$awk -F 't' 'NR> 1 && NF = 1'bokliste.txt

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utdataene inkluderer alle boknavnene i filen bortsett fra den i den første boken.

Eksempel 7: Skriv ut de formaterte forfatternavnene etter at du har hoppet over den første linjen

Den følgende kommandoen 'awk' bruker alternativet '-F' og en betinget setning for å skrive ut forfatternavnene etter å ha hoppet over den første linjen. Her brukes NR -verdien i if -tilstanden. Her vil forfatternavn: n n skrives ut som den første linjen i stedet for innholdet fra den første linjen. Forfatterens navn fra filen skrives ut for de andre verdiene i NR.

$kattbokliste.txt

$awk -F 't' '{if (NR == 1) printf' nForfatternavn: n n '; annet printf '%s n', $ 2} 'bokliste.txt

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor. Utgangen viser teksten, Forfatternavn: med en ny linje, og alle forfatternavn skrives ut bortsett fra det første.

Konklusjon

Den første linjen i en fil kan hoppes over ved hjelp av 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 kommandoen `awk`. Navnlig kan NR -variabelen i kommandoen `awk` brukes til å hoppe over den første linjen i en fil.