Awk

Sådan springes den første linje i en fil over ved hjælp af 'awk'

Sådan springes den første linje i en fil over ved hjælp af 'awk'

Der er forskellige anvendelser af kommandoen 'awk' i Linux. For eksempel kan den bruges til at udskrive indholdet af en tekstfil. Den første linje med mange tekstfiler indeholder overskriften på filen, og nogle gange skal den første linje springes over, når du udskriver indholdet af filen. 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 tabulatorafgrænset tekstfil med navnet bogliste.txt med følgende indhold. Denne fil indeholder en liste over bøger med deres tilsvarende forfattere. I denne vejledning viser vi dig, hvordan du udskriver forskellige dele af denne fil, efter at du har sprunget over den første linje.

Cybersikkerhed med bash Paul Troncone, Carl Albing
Kommandolinie Kung Fu Jason Cannon
Linux Command Line Travis Booth
Bash i lette trin Mike McGrath
Unix i nemme trin Mike McGrath

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

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

$ kat bogliste.txt
$ awk '(NR> 1)' bogliste.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet inkluderer alle andre linjer end den første linje i filen.

Eksempel 2: Spring den første linje over ved at bruge NR og '!= 'operatør

Den følgende kommando 'awk' svarer til den i det foregående eksempel. Men '!= 'sammenligningsoperator bruges her i stedet for'> '.

$ kat bogliste.txt
$ awk 'NR!= 1 'bogliste.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet viser alle andre linjer end den første linje i filen.

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

Den følgende kommando 'awk' udskriver linjerne i filen, hvis if-sætningen er sand. Her er if-sætningen kun sand, når NR-værdien ikke er lig med 1.

$ kat bogliste.txt
$ awk 'if (NR!= 1) boglisten print.txt

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet inkluderer alle linjer undtagen den første linje i filen.

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' læser den første kolonne fra filen baseret på feltadskilleren (\ t) og sender output til den anden 'awk' kommando. Den anden kommando 'awk' udskriver det ønskede output.

$ kat bogliste.txt
$ awk -F "\ t" 'udskriv $ 1' bogliste.txt | awk 'NR!= 1 print '

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet viser alle bognavne undtagen for den første bog.

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

Valgmuligheden '-F', NR-variablen og printf-funktionen bruges i den følgende 'awk' -kommando til at generere formateret output efter at springe 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.

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

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet viser det formaterede indhold af filen, eksklusive den første linje i filen.

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

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

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

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet inkluderer alle bognavne i filen bortset fra den første bog.

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

Den følgende kommando 'awk' bruger indstillingen '-F' og en betinget erklæring til at udskrive forfatternavnene efter at have sprunget over den første linje. Her bruges NR-værdien i if-tilstanden. Her udskrives “Forfatternavn: \ n \ n” som den første linje i stedet for indholdet fra den første linje. Forfatterens navne fra filen udskrives for de andre værdier for NR.

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

Følgende output produceres efter kørsel af ovenstående kommandoer. Outputtet viser teksten "Forfatternavn:" med en ny linje, og alle forfatternavne udskrives undtagen den 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 over den første linje i en fil ved hjælp af kommandoen 'awk'. Bemærkelsesværdigt kan NR-variablen i kommandoen 'awk' bruges til at springe over den første linje i enhver fil.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...