Kā izlaist faila pirmo rindu, izmantojot 'awk'

How Skip First Line File Using Awk



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.