Kako preskočiti prvi redak datoteke pomoću `awk`

How Skip First Line File Using Awk



Postoje različite upotrebe naredbe `awk` u Linuxu. Na primjer, može se koristiti za ispis sadržaja tekstualne datoteke. Prvi redak mnogih tekstualnih datoteka sadrži zaglavlje datoteke, a ponekad se prvi redak mora preskočiti prilikom ispisa sadržaja datoteke. U ovom vodiču pokazat ćemo vam kako izvršiti ovaj zadatak pomoću naredbe `awk`.

Napravite tekstualnu datoteku

Da biste slijedili ovaj vodič, izradite tekstualnu datoteku razgraničenu tabulatorima pod nazivom booklist.txt sa sljedećim sadržajem. Ova datoteka sadrži popis knjiga s odgovarajućim autorima. U ovom vodiču pokazat ćemo vam kako ispisati različite dijelove ove datoteke nakon preskakanja prvog retka.







Kibernetička sigurnost s razbijačem Paulom Tronconeom, Carlom Albingom

Naredbeni redak Kung Fu Jason Cannon

Linuxova naredbena linija Travis Booth

Iskoristite jednostavne korake Mike McGrath

Unix u lakim koracima Mike McGrath

Primjer 1: Preskočite prvi redak datoteke pomoću NR -a i operatora ‘>’

Varijabla NR označava broj zapisa u datoteci. Sljedeća naredba `awk` koristi NR varijablu za preskakanje prvog retka datoteke. Vrijednost NR je 1 za prvi redak. Sljedeća naredba ispisat će retke za koje je vrijednost NR veća od 1.



$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Ispis uključuje sve retke osim prvog retka datoteke.







Primjer 2: Preskočite prvi redak pomoću NR -a i operatora ‘! =’

Sljedeća naredba `awk` slična je onoj u prethodnom primjeru. Međutim, ovdje se umjesto '>' koristi operator usporedbe ‘! =’.

$mačkabooklist.txt

$awk 'NR! = 1'booklist.txt

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Izlaz prikazuje sve retke osim prvog retka datoteke.



Primjer 3: Preskočite prvi redak datoteke pomoću uvjetne naredbe

Sljedeća naredba `awk` ispisat će retke datoteke ako je if naredba točna. Ovdje će naredba if biti točna samo ako vrijednost NR nije jednaka 1.

$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Izlaz uključuje sve retke osim prvog retka datoteke.

Primjer 4: Ispišite nazive knjiga iz datoteke, ali preskočite prvi redak

Dvije naredbe `awk` koriste se u ovom primjeru za ispis svih naziva knjiga osim prve. Naredba `awk` će pročitati prvi stupac iz datoteke na temelju separatora polja ( t) i poslati izlaz drugoj naredbi` awk`. Druga naredba `awk` ispisat će željeni izlaz.

$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Ispis prikazuje sve nazive knjiga osim imena prve knjige.

Primjer 5: Formatirajte sadržaj datoteke nakon što preskočite prvi redak

Opcija '-F', NR varijabla i funkcija printf koriste se u sljedećoj naredbi `awk` za generiranje formatiranog izlaza nakon preskakanja prvog retka. Naredba će podijeliti sadržaj datoteke u stupce na temelju t, a printf će ispisati prvi i drugi stupac kada je vrijednost NR najmanje 2.

$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Ispis prikazuje formatirani sadržaj datoteke, isključujući prvi redak datoteke.

Primjer 6: Ispišite nazive knjiga nakon što preskočite prvi redak pomoću NR i NF

Sljedeća naredba `awk` koristi opciju '-F' i NR i NF za ispis naziva knjiga nakon preskakanja prve knjige. Opcija ‘-F’ koristi se za odvajanje sadržaja baze datoteka na t. NR se koristi za preskakanje prvog retka, a NF se koristi za ispis samo prvog stupca.

$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Ispis uključuje sve nazive knjiga u datoteci, osim imena prve knjige.

Primjer 7: Ispišite formatirana imena autora nakon što preskočite prvi redak

Sljedeća naredba `awk` koristi opciju '-F' i uvjetni izraz za ispis imena autora nakon preskakanja prvog retka. Ovdje se vrijednost NR koristi u uvjetu if. Ovdje će se ime autora: n n ispisati kao prvi redak umjesto sadržaja iz prvog retka. Imena autora iz datoteke bit će ispisana za ostale vrijednosti NR.

$mačkabooklist.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi. Ispis prikazuje tekst, Ime autora: s novim retkom, a sva imena autora ispisuju se osim prvog.

Zaključak

Prvi redak datoteke može se preskočiti pomoću različitih naredbi za Linux. Kao što je prikazano u ovom vodiču, postoje različiti načini preskakanja prvog retka datoteke pomoću naredbe `awk`. Značajno je da se NR varijabla naredbe `awk` može koristiti za preskakanje prvog retka bilo koje datoteke.