Ärme

Kuidas vahele jätta faili esimene rida 'awk' abil

Kuidas vahele jätta faili esimene rida 'awk' abil

Linuxis saab käsku 'awk' kasutada mitmel viisil. Näiteks saab seda kasutada tekstifaili sisu printimiseks. Paljude tekstifailide esimene rida sisaldab faili pealkirja ja mõnikord tuleb faili sisu printimisel esimene rida vahele jätta. Selles õpetuses näitame teile, kuidas seda ülesannet käsu 'awk' abil täita.

Looge tekstifail

Selle õpetuse järgimiseks looge tabulaatoriga eraldatud tekstifail nimega raamatute loend.txt järgmise sisuga. See fail sisaldab loetelu raamatutest ja nende vastavatest autoritest. Selles õpetuses näitame teile, kuidas printida selle faili erinevaid osi pärast esimese rea vahele jätmist.

Küberturvalisus koos Paul Troncone'i, Carl Albingiga
Käsuliin Kung Fu Jason Cannon
Linuxi käsurida Travis Booth
Bash lihtsate sammudega Mike McGrath
Unix lihtsate sammudega Mike McGrath

Näide 1: jätke faili esimene rida vahele, kasutades NR-i ja operaatorit '>'

Muutuja NR näitab faili kirjete arvu. Järgmine käsk 'awk' kasutab muutuja NR abil faili esimese rea vahele jätmiseks. NR väärtus on 1 esimesel real. Järgmine käsk prindib ridu, mille NR väärtus on suurem kui 1.

$ kassiraamat.txt
$ awk '(NR> 1)' raamatute loend.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund sisaldab kõiki ridu peale faili esimese rea.

Näide 2: Jätke esimene rida vahele, kasutades NR ja '!= 'operaator

Järgmine käsk 'awk' sarnaneb eelmises näites kirjeldatuga. Kuid!= siin kasutatakse '>' asemel võrdlusoperaatorit.

$ kassiraamat.txt
$ awk 'NR!= 1 'raamatute loend.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab kõiki ridu peale faili esimese rea.

Näide 3: Tingimuslauset kasutades jätke faili esimene rida vahele

Järgmine käsk 'awk' prindib faili read, kui lause if on tõene. Siin on if-lause tõene ainult siis, kui NR väärtus ei võrdu 1-ga.

$ kassiraamat.txt
$ awk 'if (NR!= 1) print 'raamatute loend.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund sisaldab kõiki ridu, välja arvatud faili esimene rida.

Näide 4: printige raamatust nimed failist, kuid jätke esimene rida vahele

Kõigi raamatunimede, välja arvatud esimese printimiseks, kasutatakse selles näites kahte käsku 'awk'. Käsk awk loeb faili esimese veeru väljaeraldaja (\ t) põhjal ja saadab väljundi teisele käsule awk. Teine käsk 'awk' prindib soovitud väljundi.

$ kassiraamat.txt
$ awk -F "\ t" 'print $ 1' raamatute loend.txt | awk 'NR!= 1 print '

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab kõiki raamatunimesid, välja arvatud esimese raamatu nimed.

Näide 5: vormindage faili sisu pärast esimese rea vahele jätmist

Valikut '-F', muutujat NR ja printf kasutatakse järgmises 'awk' käsus vormindatud väljundi loomiseks pärast esimese rea vahelejätmist. Käsk jagab faili sisu veergudeks \ t alusel ja printf prindib esimese ja teise veeru, kui NR väärtus on vähemalt 2.

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

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab faili vormindatud sisu, välja arvatud faili esimene rida.

Näide 6: printige raamatunimed pärast esimese rea vahele jätmist, kasutades NR ja NF

Järgmine käsk awk kasutab pärast esimese raamatu vahelejätmist raamatute nimede printimiseks valikut -F ning NR ja NF. Valikut '-F' kasutatakse failibaasi sisu eraldamiseks \ t. NR-d kasutatakse esimese rea vahele jätmiseks ja NF-i kasutatakse ainult esimese veeru printimiseks.

$ kassiraamat.txt
$ awk -F '\ t' 'NR> 1 && NF = 1' raamatute loend.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund sisaldab kõiki failis olevaid raamatunimesid, välja arvatud esimese raamatu nimed.

Näide 7: Pärast esimese rea vahele jätmist printige vormindatud autorinimed

Järgmine käsk awk kasutab autori nimede printimiseks pärast esimese rea vahelejätmist valikut '-F' ja tingimuslauset. Siin kasutatakse NR-väärtust tingimustes if. Siit trükitakse esimese rea sisu asemel esimese reana “Autori nimi: \ n \ n”. NR-i muude väärtuste jaoks prinditakse failist autori nimed.

$ kassiraamat.txt
$ awk -F '\ t' 'if (NR == 1) printf "\ nAutori nimi: \ n \ n"; else printf "% s \ n", $ 2 'raamatute loend.txt

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljundil kuvatakse tekst "Autori nimi:" uue reaga ja kõik autorinimed on välja trükitud, välja arvatud esimene.

Järeldus

Faili esimese rea saab vahele jätta, kasutades erinevaid Linuxi käske. Nagu selles õpetuses näidatud, on faili esimese rea vahele jätmiseks käsuga 'awk' erinevad viisid. Märkimisväärselt saab käsu 'awk' muutujat NR kasutada mis tahes faili esimese rea vahele jätmiseks.

5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...
League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...