Kako preskočiti prvo vrstico datoteke z uporabo 'awk'

How Skip First Line File Using Awk



Ukaz awk v Linuxu se uporablja na različne načine. Z njim lahko na primer natisnete vsebino besedilne datoteke. Prva vrstica številnih besedilnih datotek vsebuje naslov datoteke, včasih pa je treba pri tiskanju vsebine datoteke preskočiti prvo vrstico. V tej vadnici vam bomo pokazali, kako to nalogo opravite z ukazom `awk`.

Ustvarite besedilno datoteko

Če želite slediti tej vadnici, ustvarite besedilno datoteko, ločeno z zavihki, z imenom booklist.txt z naslednjo vsebino. Ta datoteka vsebuje seznam knjig z ustreznimi avtorji. V tej vadnici vam bomo pokazali, kako natisnete različne dele te datoteke, potem ko preskočite prvo vrstico.







Kibernetska varnost z bash Paulom Tronconeom, Carlom Albingom

Ukazna vrstica Kung Fu Jason Cannon

Ukazna vrstica Linuxa Travis Booth

Bash v preprostih korakih Mike McGrath

Unix v enostavnih korakih Mike McGrath

Primer 1: Preskočite prvo vrstico datoteke z uporabo NR in operatorja '>'

Spremenljivka NR označuje število zapisov v datoteki. Naslednji ukaz awk uporablja spremenljivko NR za preskok prve vrstice datoteke. Vrednost NR je 1 za prvo vrstico. Naslednji ukaz bo natisnil vrstice, pri katerih je vrednost NR večja od 1.



$mačkabooklist.txt

$awk '(NE> 1)'booklist.txt

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod vključuje vse vrstice razen prve vrstice datoteke.







Primer 2: Preskočite prvo vrstico z uporabo NR in operatorja '! ='

Naslednji ukaz `awk` je podoben tistemu v prejšnjem primeru. Vendar se tukaj namesto '>' uporablja primerjalni operator '! ='.

$mačkabooklist.txt

$awk 'NR! = 1'booklist.txt

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod prikazuje vse vrstice razen prve vrstice datoteke.



Primer 3: Preskočite prvo vrstico datoteke z uporabo pogojnega stavka

Naslednji ukaz `awk` bo natisnil vrstice datoteke, če je stavek if res. Tu bo stavek if res samo, če vrednost NR ni enaka 1.

$mačkabooklist.txt

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

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod vključuje vse vrstice, razen prve vrstice datoteke.

Primer 4: Natisnite imena knjig iz datoteke, vendar preskočite prvo vrstico

V tem primeru se za tiskanje vseh imen knjig, razen prvega, uporabljata dva ukaza 'awk'. Ukaz `awk` bo prebral prvi stolpec iz datoteke na podlagi ločevalnika polj ( t) in poslal izhod v drugi ukaz` awk`. Drugi ukaz awk natisne želeni izhod.

$mačkabooklist.txt

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

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod prikazuje vsa imena knjig, razen imena prve knjige.

Primer 5: Formatirajte vsebino datoteke, potem ko preskočite prvo vrstico

Možnost '-F', spremenljivka NR in funkcija printf se uporabljajo v naslednjem ukazu `awk` za ustvarjanje oblikovanega izhoda po preskoku prve vrstice. Ukaz bo vsebino datoteke razdelil na stolpce na podlagi t, printf pa natisne prvi in ​​drugi stolpec, ko je vrednost NR vsaj 2.

$mačkabooklist.txt

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

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod prikazuje oblikovano vsebino datoteke, razen prve vrstice datoteke.

Primer 6: Natisnite imena knjig, ko preskočite prvo vrstico z uporabo NR in NF

Naslednji ukaz awk uporablja možnost '-F' in NR in NF za tiskanje imen knjig po preskoku prve knjige. Možnost '-F' se uporablja za ločevanje vsebine zbirke datotek na t. NR se uporablja za preskok prve vrstice, NF pa za tiskanje samo prvega stolpca.

$mačkabooklist.txt

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

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod vključuje vsa imena knjig v datoteki, razen imena prve knjige.

Primer 7: Natisnite oblikovana imena avtorjev, potem ko preskočite prvo vrstico

Naslednji ukaz `awk` uporablja možnost '-F' in pogojno izjavo za tiskanje imen avtorjev po preskoku prve vrstice. Tu se vrednost NR uporablja v pogoju if. Tukaj bo ime avtorja: n n natisnjeno kot prva vrstica namesto vsebine iz prve vrstice. Avtorska imena iz datoteke bodo natisnjena za druge vrednosti NR.

$mačkabooklist.txt

$awk -F ' t' '{if (NR == 1) printf' nIme avtorja: n n '; else printf '%s n', $ 2} 'booklist.txt

Naslednji izhod bo izdelan po izvajanju zgornjih ukazov. Izhod prikazuje besedilo Ime avtorja: z novo vrstico in vsa imena avtorjev so natisnjena, razen prvega.

Zaključek

Prvo vrstico datoteke lahko preskočite z različnimi ukazi Linuxa. Kot je prikazano v tej vadnici, lahko z ukazom `awk` preskočite prvo vrstico datoteke na različne načine. Omeniti velja, da lahko spremenljivko NR ukaza `awk` uporabite za preskok prve vrstice katere koli datoteke.