Sådan springer du den første linje i en fil over med 'awk'

How Skip First Line File Using Awk



Der er forskellige anvendelser af kommandoen 'awk' i Linux. For eksempel kan den bruges til at udskrive indholdet i en tekstfil. Den første linje i mange tekstfiler indeholder filens overskrift, og nogle gange skal den første linje springes over, når filens indhold udskrives. I denne vejledning viser vi dig, hvordan du udfører denne opgave ved hjælp af kommandoen 'awk'.

Opret en tekstfil

For at følge denne vejledning skal du oprette en fanebaseret tekstfil med navnet bogliste.txt med følgende indhold. Denne fil indeholder en liste over bøger med tilhørende forfattere. I denne vejledning viser vi dig, hvordan du udskriver forskellige dele af denne fil efter at have hoppet over den første linje.







Cybersikkerhed med bash Paul Troncone, Carl Albing

Kommandolinje Kung Fu Jason Cannon

Linux Command Line Travis Booth

Bash i lette trin Mike McGrath

Unix i lette trin Mike McGrath

Eksempel 1: Spring den første linje i en fil over ved hjælp af NR og ‘>’ operatoren

NR -variablen angiver antallet af poster i en fil. Følgende kommando `awk` bruger NR -variablen til at springe den første linje i en fil over. Værdien af ​​NR er 1 for den første linje. Følgende kommando udskriver linjer, for hvilke NR -værdien er større end 1.



$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet omfatter alle andre linjer end filens første linje.







Eksempel 2: Spring den første linje over ved hjælp af NR og '! =' Operatoren

Den følgende kommando `awk` ligner den i det foregående eksempel. Imidlertid bruges '! =' Sammenligningsoperatoren her i stedet for '>'.

$katbogliste.txt

$awk 'NR! = 1'bogliste.txt

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet viser alle andre linjer end filens første linje.



Eksempel 3: Spring den første linje i en fil over ved hjælp af en betinget erklæring

Den følgende kommando `awk` udskriver filens linjer, hvis if -sætningen er sand. Her vil if -sætningen kun være sand, når NR -værdien ikke er 1.

$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet inkluderer alle linjer undtagen filens første linje.

Eksempel 4: Udskriv bognavne fra filen, men spring den første linje over

To 'awk' -kommandoer bruges i dette eksempel til at udskrive alle bognavne undtagen det første. Kommandoen `awk` vil læse den første kolonne fra filen baseret på feltseparatoren ( t) og sende output til den anden` awk` -kommando. Den anden kommando `awk` udskriver det ønskede output.

$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet viser alle bognavne bortset fra den i den første bog.

Eksempel 5: Formater filindholdet efter at have sprunget over den første linje

Funktionen ‘-F’, NR-variabel og printf-funktion bruges i følgende 'awk'-kommando til at generere formateret output efter at have hoppet over den første linje. Kommandoen deler filindholdet i kolonner baseret på t, og printf udskriver den første og anden kolonne, når NR -værdien er mindst 2.

$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet viser filens formaterede indhold, eksklusive filens første linje.

Eksempel 6: Udskriv bognavne efter at have sprunget over den første linje ved hjælp af NR og NF

Følgende kommando `awk` bruger '-F' og NR og NF til at udskrive bognavne efter at have sprunget den første bog. Indstillingen ‘-F’ bruges til at adskille indholdet af filbasen på t. NR bruges til at springe den første linje over, og NF bruges kun til at udskrive den første kolonne.

$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet indeholder alle bognavne i filen bortset fra den i den første bog.

Eksempel 7: Udskriv de formaterede forfatternavne efter at have sprunget over den første linje

Følgende kommando `awk` bruger '-F' og en betinget erklæring til at udskrive forfatternavne efter at have sprunget over den første linje. Her bruges NR -værdien i if -tilstanden. Her vil forfatternavn: n n blive udskrevet som den første linje i stedet for indholdet fra den første linje. Forfatterens navne fra filen udskrives for de andre værdier i NR.

$katbogliste.txt

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

Følgende output produceres efter at have kørt ovenstående kommandoer. Outputtet viser teksten, Forfatternavn: med en ny linje, og alle forfatternavne udskrives undtagen det første.

Konklusion

Den første linje i en fil kan springes over ved hjælp af forskellige Linux -kommandoer. Som vist i denne vejledning er der forskellige måder at springe den første linje i en fil over ved at bruge kommandoen `awk`. Bemærkelsesværdigt kan NR -variablen i kommandoen `awk` bruges til at springe den første linje i en fil over.