Awk

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

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

Det er forskjellige bruksområder for 'awk' -kommandoen i Linux. For eksempel kan den brukes til å skrive ut innholdet i en tekstfil. Den første linjen i 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 kommandoen 'awk'.

Lag en tekstfil

For å følge med på denne veiledningen, opprett en tekstavgrenset tekstfil med navnet 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 første linje.

Cybersecurity 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 første linje. Følgende kommando vil skrive ut linjer der NR-verdien er større enn 1.

$ katt bokliste.tekst
$ awk '(NR> 1)' bokliste.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utdata inkluderer alle andre linjer enn den første linjen i filen.

Eksempel 2: Hopp over første linje ved å bruke NR og '!= 'operatør

Følgende kommando "awk" er lik den i forrige eksempel. Imidlertid!= 'sammenligningsoperatør brukes her i stedet for'> '.

$ katt bokliste.tekst
$ awk 'NR!= 1 'bokliste.tekst

Følgende utdata blir 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 kommando 'awk' vil skrive ut linjene i filen hvis if-setningen er sant. Her vil if-setningen bare være sant når NR-verdien ikke er lik 1.

$ katt bokliste.tekst
$ awk 'if (NR!= 1) print 'bokliste.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utdata inkluderer alle linjer bortsett fra den første linjen i filen.

Eksempel 4: Skriv ut boknavnene fra filen, men hopp over første linje

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å feltutskilleren (\ t) og sende utdataene til den andre "awk" -kommandoen. Den andre "awk" -kommandoen vil skrive ut ønsket utskrift.

$ katt bokliste.tekst
$ awk -F "\ t" 'print $ 1' - bokliste.txt | awk 'NR!= 1 print '

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser alle boknavnene bortsett fra den for den første boken.

Eksempel 5: Formater filinnholdet etter å ha hoppet over den første linjen

Alternativet '-F', NR-variabel og printf-funksjon brukes i følgende 'awk' -kommando for å generere formatert utgang etter å ha hoppet over første linje. Kommandoen vil dele filinnholdet i kolonner basert på \ t, og printf vil skrive ut første og andre kolonne 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 utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser formatert innhold i filen, unntatt den første linjen i filen.

Eksempel 6: Skriv ut boknavnene etter å ha hoppet over første linje ved hjelp av 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 første linje, og NF brukes kun til å skrive ut den første kolonnen.

$ katt bokliste.tekst
$ awk -F '\ t' 'NR> 1 && NF = 1' bokliste.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utdataene inkluderer alle boknavnene i filen, bortsett fra den første boken.

Eksempel 7: Skriv ut de formaterte forfatternavnene etter å ha hoppet over den første linjen

Følgende kommando 'awk' bruker alternativet '-F' og en betinget uttalelse for å skrive ut forfatternavnene etter å ha hoppet over første linje. Her brukes NR-verdien i if-tilstanden. Her vil "Forfatternavn: \ n \ n" skrives ut som første linje 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 "\ n Forfatternavn: \ n \ n"; ellers printf "% s \ n", $ 2 'bokliste.tekst

Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor. Utgangen viser teksten “Forfatternavn:” med en ny linje, og alle forfatternavn skrives 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 kommandoen 'awk'. Merkbart kan NR-variabelen til kommandoen 'awk' brukes til å hoppe over den første linjen i en hvilken som helst fil.

Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...