Kuidas faili esimese rea vahele jätta, kasutades 'awk'

How Skip First Line File Using Awk



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ätkamiseks looge vahekaardiga eraldatud tekstifail nimega booklist.txt järgmise sisuga. See fail sisaldab nimekirja raamatutest koos nende vastavate autoritega. Selles õpetuses näitame teile, kuidas printida selle faili erinevaid osi pärast esimese rea vahelejätmist.







Küberturvalisus koos bash Paul Troncone, Carl Albingiga

Käsurea Kung Fu Jason Cannon

Linuxi käsurea 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 faili esimese rea vahelejätmiseks muutujat NR. NR väärtus on esimesel real 1. Järgmine käsk prindib read, mille NR väärtus on suurem kui 1.



$kassbooklist.txt

$awk '(EI> 1)'booklist.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 operaatorit '! ='

Järgmine käsk 'awk' on sarnane eelmise näite omaga. Kuid siin kasutatakse võrdlusoperaatorit „! =”, Mitte „>”.

$kassbooklist.txt

$awk 'NR! = 1'booklist.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: jätke tingimuslause abil faili esimene rida vahele

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

$kassbooklist.txt

$awk '{if (NR! = 1) {print}}'booklist.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

Selles näites kasutatakse kõigi raamatute nimede, välja arvatud esimese, printimiseks kahte käsku 'awk'. Käsk 'awk' loeb väljade eraldaja ( t) põhjal failist esimese veeru ja saadab väljundi teisele 'awk' käsule. Teine 'awk' käsk prindib soovitud väljundi.

$kassbooklist.txt

$awk -F ' t' „{print $ 1}”booklist.txt| awk 'NR! = 1 trükk]

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

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

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

$kassbooklist.txt

$awk -F ' t' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.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 raamatute nimed pärast esimese rea vahelejä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 kasutatakse esimese rea vahelejätmiseks ja NF ainult esimese veeru printimiseks.

$kassbooklist.txt

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

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

Näide 7: printige vormindatud autorite nimed pärast esimese rea vahelejätmist

Järgmine käsk awk kasutab pärast esimest rida vahelejätmist autorite nimede printimiseks valikut -F ja tingimuslauset. Siin kasutatakse NR väärtust tingimuses if. Siin trükitakse autori nimi: n n esimese rea sisu asemel esimeseks reaks. Faili autori nimed trükitakse teiste NR väärtuste jaoks.

$kassbooklist.txt

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

Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund. Väljund näitab teksti Autori nimi: uue reaga ja kõik autorite nimed trükitakse välja, 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 vahelejätmiseks erinevaid viise, kasutades käsku 'awk'. Märkimisväärselt saab käsu 'awk' muutujat NR kasutada mis tahes faili esimese rea vahelejätmiseks.