U Linuxu se koriste razne naredbe 'awk'. Na primjer, može se koristiti za ispis sadržaja tekstualne datoteke. Prvi redak mnogih tekstualnih datoteka sadrži naslov datoteke, a ponekad se prvi redak mora preskočiti prilikom ispisa sadržaja datoteke. U ovom uputstvu pokazat ćemo vam kako izvršiti ovaj zadatak pomoću naredbe 'awk'.
Stvorite tekstualnu datoteku
Da biste nastavili s ovim uputstvom, stvorite tekstualnu datoteku razdvojenu karticama s imenom popis knjiga.txt sa sljedećim sadržajem. Ova datoteka sadrži popis knjiga s odgovarajućim autorima. U ovom uputstvu pokazat ćemo vam kako ispisati različite dijelove ove datoteke nakon preskakanja prvog retka.
Kibernetska sigurnost s bashom Paulom Tronconeom, Carlom AlbingomKomandna linija Kung Fu Jason Cannon
Linux naredbeni redak Travis Booth
Udarac laganim koracima Mike McGrath
Unix u laganim koracima Mike McGrath
Primjer 1: Preskočite prvi redak datoteke koristeći NR i operator '>'
NR varijabla 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čka popis knjiga.txt$ awk '(NR> 1)' popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz uključuje sve retke osim prvog retka datoteke.
Primjer 2: preskočite prvi redak pomoću NR i znaka '!= 'operator
Sljedeća naredba 'awk' slična je onoj u prethodnom primjeru. Međutim '!= 'ovdje se koristi operator usporedbe umjesto'> '.
$ mačka popis knjiga.txt$ awk 'NR!= 1 'popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz prikazuje sve retke osim prvog retka datoteke.
Primjer 3: Preskočite prvi redak datoteke pomoću uvjetnog izraza
Sljedeća naredba 'awk' ispisat će retke datoteke ako je izjava if istinita. Ovdje će naredba if biti istinita samo kada NR vrijednost nije jednaka 1.
$ mačka popis knjiga.txt$ awk 'ako (NR!= 1) print 'popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz uključuje sve retke, osim prvog retka datoteke.
Primjer 4: Ispišite imena knjiga iz datoteke, ali preskočite prvi redak
U ovom se primjeru koriste dvije naredbe 'awk' za ispis svih imena knjiga, osim prve. Naredba 'awk' očitat će prvi stupac iz datoteke na temelju separatora polja (\ t) i poslati izlaz drugoj naredbi 'awk'. Druga naredba 'awk' ispisat će željeni izlaz.
$ mačka popis knjiga.txt$ awk -F "\ t" 'print $ 1' popis knjiga.txt | awk 'NR!= 1 ispis '
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz prikazuje sva imena knjiga, osim imena prve knjige.
Primjer 5: Formatirajte sadržaj datoteke nakon preskakanja prvog retka
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 NR vrijednost najmanje 2.
$ mačka popis knjiga.txt$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz prikazuje formatirani sadržaj datoteke, isključujući prvi redak datoteke.
Primjer 6: Ispišite imena knjiga nakon preskakanja prvog retka pomoću NR i NF
Sljedeća naredba 'awk' koristi opciju '-F' i NR i NF za ispis imena 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 koristi se za ispis samo prvog stupca.
$ mačka popis knjiga.txt$ awk -F '\ t' 'NR> 1 && NF = 1' popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. Izlaz uključuje sva imena knjiga u datoteci, osim imena prve knjige.
Primjer 7: Ispišite oblikovana imena autora nakon preskakanja prvog retka
Sljedeća naredba 'awk' koristi opciju '-F' i uvjetnu izjavu za ispis imena autora nakon preskakanja prvog retka. Ovdje se koristi NR vrijednost u stanju if. Ovdje će se kao prvi redak umjesto sadržaja iz prvog retka ispisati "Ime autora: \ n \ n". Imena autora iz datoteke bit će ispisana za ostale vrijednosti NR.
$ mačka popis knjiga.txt$ awk -F '\ t' 'if (NR == 1) printf "\ nAutor Ime: \ n \ n"; inače printf "% s \ n", $ 2 'popis knjiga.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi. U izlazu se prikazuje tekst "Ime autora:" s novim redom, a ispisuju se sva imena autora, osim prvog.
Zaključak
Prvi redak datoteke može se preskočiti pomoću različitih Linux naredbi. Kao što je prikazano u ovom vodiču, postoje različiti načini preskakanja prvog retka datoteke pomoću naredbe 'awk'. Primjetno je da se NR varijabla naredbe 'awk' može koristiti za preskakanje prvog retka bilo koje datoteke.