Príkaz 'awk' v systéme Linux existuje rôzne. Môže sa napríklad použiť na tlač obsahu textového súboru. Prvý riadok mnohých textových súborov obsahuje záhlavie súboru a niekedy je potrebné pri tlači obsahu súboru prvý riadok preskočiť. V tomto tutoriále vám ukážeme, ako splniť túto úlohu pomocou príkazu „awk“.
Vytvorte textový súbor
Ak chcete v tejto príručke pokračovať, vytvorte textový súbor s názvom oddeleným tabulátormi zoznam kníh.TXT s nasledujúcim obsahom. Tento súbor obsahuje zoznam kníh s zodpovedajúcimi autormi. V tomto návode si ukážeme, ako tlačiť rôzne časti tohto súboru po preskočení prvého riadku.
Kybernetická bezpečnosť s bash Paul Troncone, Carl AlbingPríkazový riadok Kung Fu Jason Cannon
Linuxový príkazový riadok Travis Booth
Bash v jednoduchých krokoch Mike McGrath
Unix v jednoduchých krokoch Mike McGrath
Príklad 1: Preskočte prvý riadok súboru pomocou NR a operátora '>'
Premenná NR udáva počet záznamov v súbore. Nasledujúci príkaz „awk“ používa premennú NR na preskočenie prvého riadku súboru. Hodnota NR je 1 pre prvý riadok. Nasledujúci príkaz vytlačí riadky, pre ktoré je hodnota NR väčšia ako 1.
$ mačací zoznam kníh.TXTzoznam kníh $ awk '(NR> 1)'.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup obsahuje všetky riadky okrem prvého riadku súboru.
Príklad 2: Prvý riadok preskočte pomocou NR a znaku „!= 'operátor
Nasledujúci príkaz „awk“ je podobný príkazu v predchádzajúcom príklade. Avšak „!= 'namiesto'> 'sa tu používa operátor porovnania.
$ mačací zoznam kníh.TXT$ awk 'NR!= 1 'zoznam kníh.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup zobrazuje všetky riadky okrem prvého riadku súboru.
Príklad 3: Prvý riadok súboru preskočte pomocou podmieneného príkazu
Nasledujúci príkaz „awk“ vytlačí riadky súboru, ak je príkaz if pravdivý. Tu bude príkaz if pravdivý, iba ak sa hodnota NR nerovná 1.
$ mačací zoznam kníh.TXT$ awk 'if (NR!= 1) print 'zoznam kníh.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup obsahuje všetky riadky okrem prvého riadku súboru.
Príklad 4: Vytlačte si názvy kníh zo súboru, ale preskočte prvý riadok
V tomto príklade sa na tlač všetkých názvov kníh okrem prvého používajú dva príkazy „awk“. Príkaz 'awk' načíta prvý stĺpec zo súboru na základe oddeľovača polí (\ t) a odošle výstup do druhého príkazu 'awk'. Druhý príkaz 'awk' vytlačí požadovaný výstup.
$ mačací zoznam kníh.TXT$ awk -F "\ t" 'tlačiť zoznam kníh $ 1'.txt | awk 'NR!= 1 print '
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup zobrazuje všetky názvy kníh okrem tých, ktoré sú uvedené v prvej knihe.
Príklad 5: Po preskočení prvého riadku naformátujte obsah súboru
Voľba „-F“, premenná NR a funkcia printf sa používajú v nasledujúcom príkaze „awk“ na generovanie formátovaného výstupu po preskočení prvého riadku. Príkaz rozdelí obsah súboru na stĺpce založené na \ t a printf vytlačí prvý a druhý stĺpec, keď je hodnota NR aspoň 2.
$ mačací zoznam kníh.TXT$ awk -F '\ t' 'NR> = 2 printf "% 30s% 20s \ n", $ 1, $ 2' zoznam kníh.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup zobrazuje formátovaný obsah súboru s výnimkou prvého riadku súboru.
Príklad 6: Vytlačte si názvy kníh po preskočení prvého riadku pomocou NR a NF
Nasledujúci príkaz „awk“ používa voľbu „-F“ a NR a NF na vytlačenie názvov kníh po preskočení prvej knihy. Voľba '-F' sa používa na oddelenie obsahu základne súborov na \ t. NR sa používa na preskočenie prvého riadku a NF sa používa na tlač iba prvého stĺpca.
$ mačací zoznam kníh.TXT$ awk -F '\ t' NR> 1 && NF = 1 'zoznam kníh.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Výstup obsahuje všetky názvy kníh v súbore okrem tých, ktoré sú uvedené v prvej knihe.
Príklad 7: Vytlačte si formátované mená autorov po preskočení prvého riadku
Nasledujúci príkaz „awk“ používa voľbu „-F“ a podmienené vyhlásenie na vytlačenie mien autorov po preskočení prvého riadku. Tu sa použije hodnota NR v podmienke if. Tu sa „Názov autora: \ n \ n“ vytlačí ako prvý riadok namiesto obsahu z prvého riadku. Mená autora zo súboru budú vytlačené pre ďalšie hodnoty NR.
$ mačací zoznam kníh.TXT$ awk -F '\ t' 'if (NR == 1) printf "\ nAutorské meno: \ n \ n"; else printf "% s \ n", zoznam kníh $ 2.TXT
Po vykonaní vyššie uvedených príkazov sa vytvorí nasledujúci výstup. Na výstupe je text „Meno autora:“ s novým riadkom a všetky mená autorov sú vytlačené okrem prvého.
Záver
Prvý riadok súboru je možné preskočiť pomocou rôznych príkazov systému Linux. Ako je uvedené v tejto príručke, existujú rôzne spôsoby, ako preskočiť prvý riadok súboru pomocou príkazu „awk“. Je pozoruhodné, že premennú NR príkazu „awk“ možno použiť na preskočenie prvého riadku ľubovoľného súboru.