Linux var izmantot dažādas komandas awk. Piemēram, to var izmantot, lai drukātu teksta faila saturu. Daudzu teksta failu pirmajā rindā ir faila virsraksts, un dažreiz pirmā rinda ir jāizlaiž, drukājot faila saturu. Šajā apmācībā mēs parādīsim, kā izpildīt šo uzdevumu, izmantojot komandu 'awk'.
Izveidojiet teksta failu
Lai sekotu šai apmācībai, izveidojiet ar tabulāciju norobežotu teksta failu ar nosaukumu booklist.txt ar šādu saturu. Šajā failā ir grāmatu saraksts ar to atbilstošajiem autoriem. Šajā apmācībā mēs parādīsim, kā izdrukāt dažādas šī faila daļas pēc pirmās rindas izlaišanas.
Kiberdrošība ar bash Paul Troncone, Carl Albing
Komandrindas Kung Fu Džeisons lielgabals
Linux komandrindas Travis Booth
Bash vienkāršos soļos Maiks Makgrets
Unix vienkāršos soļos Maiks Makgrets
1. piemērs: izlaidiet faila pirmo rindu, izmantojot NR un operatoru “>”
Mainīgais NR norāda ierakstu skaitu failā. Šī komanda 'awk' izmanto mainīgo NR, lai izlaistu faila pirmo rindu. NR vērtība pirmajā rindā ir 1. Šī komanda drukās rindas, kuru NR vērtība ir lielāka par 1.
$kaķisbooklist.txt
$awk '(NĒ> 1)'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Izvade ietver visas rindas, izņemot faila pirmo rindu.
2. piemērs: izlaidiet pirmo rindu, izmantojot NR un operatoru “! =”
Šī komanda 'awk' ir līdzīga iepriekšējā piemērā norādītajai. Tomēr šeit tiek izmantots salīdzināšanas operators “! =”, Nevis “>”.
$kaķisbooklist.txt$awk 'NR! = 1'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Izvade parāda visas rindas, izņemot faila pirmo rindu.
3. piemērs: izlaidiet faila pirmo rindu, izmantojot nosacījuma paziņojumu
Sekojošā komanda 'awk' izdrukās faila rindiņas, ja apgalvojums ir patiess. Šeit apgalvojums if būs patiess tikai tad, ja NR vērtība nav vienāda ar 1.
$kaķisbooklist.txt$awk '{ja (NR! = 1) {drukāt}}'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Izvade ietver visas rindas, izņemot faila pirmo rindu.
4. piemērs: izdrukājiet grāmatu nosaukumus no faila, bet izlaidiet pirmo rindu
Šajā piemērā tiek izmantotas divas 'awk' komandas, lai drukātu visu grāmatu nosaukumus, izņemot pirmo. Komanda 'awk' nolasīs faila pirmo kolonnu, pamatojoties uz lauku atdalītāju ( t), un nosūtīs izvadi uz otro komandu 'awk'. Otrā komanda 'awk' izdrukās vēlamo izvadi.
$kaķisbooklist.txt$awk -F ' t' '{print $ 1}'booklist.txt| awk 'NR! = 1 izdruka}'
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Rezultātā tiek parādīti visi grāmatu nosaukumi, izņemot pirmās grāmatas nosaukumus.
5. piemērs: formatējiet faila saturu pēc pirmās rindas izlaišanas
Opcija “-F”, mainīgais NR un funkcija printf tiek izmantota šādā komandā “awk”, lai ģenerētu formatētu izvadi pēc pirmās rindas izlaišanas. Komanda sadalīs faila saturu kolonnās, pamatojoties uz t, un printf izdrukās pirmo un otro kolonnu, ja NR vērtība ir vismaz 2.
$kaķisbooklist.txt$awk -F ' t' 'NR> = 2 {printf' %30s %20s n ', $ 1, $ 2}'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Rezultātā tiek parādīts faila formatētais saturs, izņemot faila pirmo rindu.
6. piemērs: izdrukājiet grāmatu nosaukumus pēc pirmās rindas izlaišanas, izmantojot NR un NF
Šī komanda “awk” izmanto opciju “-F” un NR un NF, lai izdrukātu grāmatu nosaukumus pēc pirmās grāmatas izlaišanas. Opciju “-F” izmanto, lai atdalītu failu bāzes saturu uz t. NR tiek izmantots, lai izlaistu pirmo rindu, un NF tiek izmantots tikai pirmās slejas drukāšanai.
$kaķisbooklist.txt$awk -F ' t' 'NR> 1 && NF = 1'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Izvade ietver visus failu nosaukumus failā, izņemot pirmās grāmatas nosaukumus.
7. piemērs: pēc pirmās rindas izlaišanas izdrukājiet formatētos autoru vārdus
Šī komanda 'awk' izmanto opciju '-F' un nosacījumu paziņojumu, lai izdrukātu autoru vārdus pēc pirmās rindas izlaišanas. Šeit NR vērtība tiek izmantota nosacījumā if. Šeit autora vārds: n n tiks izdrukāts kā pirmā rinda, nevis saturs no pirmās rindas. Autora vārdi no faila tiks drukāti citām NR vērtībām.
$kaķisbooklist.txt$awk -F ' t' '{if (NR == 1) printf' nAutora nosaukums: n n '; else printf '%s n', $ 2} 'booklist.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade. Rezultātā redzams teksts Autora vārds: ar jaunu rindu, un tiek izdrukāti visi autoru vārdi, izņemot pirmo.
Secinājums
Faila pirmo rindu var izlaist, izmantojot dažādas Linux komandas. Kā parādīts šajā apmācībā, ir dažādi veidi, kā izlaist faila pirmo rindu, izmantojot komandu 'awk'. Jāatzīmē, ka komandas awk mainīgo NR var izmantot, lai izlaistu jebkura faila pirmo rindu.