Paano Laktawan ang Unang Linya ng isang File Gamit ang `awk`

How Skip First Line File Using Awk



Mayroong iba't ibang paggamit ng `awk` na utos sa Linux. Halimbawa, maaari itong magamit upang mai-print ang nilalaman ng isang text file. Ang unang linya ng maraming mga file ng teksto ay naglalaman ng heading ng file, at kung minsan, ang unang linya ay dapat na laktawan kapag nagpi-print ng nilalaman ng file. Sa tutorial na ito, ipapakita namin sa iyo kung paano magagawa ang gawaing ito sa pamamagitan ng paggamit ng `awk` na utos.

Lumikha ng isang file ng teksto

Upang sundin kasama ang tutorial na ito, lumikha ng isang tab na na-delimit na file ng teksto na pinangalanan booklist.txt kasama ang sumusunod na nilalaman. Naglalaman ang file na ito ng isang listahan ng mga libro kasama ang kanilang kaukulang mga may-akda. Sa tutorial na ito, ipapakita namin sa iyo kung paano mag-print ng iba't ibang mga bahagi ng file na ito pagkatapos lumaktaw sa unang linya.







Cybersecurity kasama si bash Paul Troncone, Carl Albing

Command Line Kung Fu Jason Cannon

Linux Command Line Travis Booth

Bash sa madaling mga hakbang Mike McGrath

Unix sa madaling mga hakbang Mike McGrath

Halimbawa 1: Laktawan ang unang linya ng isang file gamit ang NR at ang operator na '>'

Ipinapahiwatig ng variable ng NR ang bilang ng mga tala sa isang file. Ang sumusunod na command na 'awk` ay gumagamit ng variable ng NR upang laktawan ang unang linya ng isang file. Ang halaga ng NR ay 1 para sa unang linya. Ang sumusunod na utos ay mag-print ng mga linya kung saan ang halaga ng NR ay mas malaki sa 1.



$pusabooklist.txt

$ang awkward '(HINDI> 1)'booklist.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Kasama sa output ang lahat ng mga linya maliban sa unang linya ng file.







Halimbawa 2: Laktawan ang unang linya sa pamamagitan ng paggamit ng NR at ng operator na ‘! =’

Ang sumusunod na `awk` na utos ay katulad ng sa naunang halimbawa. Gayunpaman, ang operator ng paghahambing na '! =' Ay ginagamit dito sa halip na '>'.

$pusabooklist.txt

$ang awkward 'NR! = 1'booklist.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Ipinapakita ng output ang lahat ng mga linya maliban sa unang linya ng file.



Halimbawa 3: Laktawan ang unang linya ng isang file sa pamamagitan ng paggamit ng isang kondisyong pahayag

Ang sumusunod na utos na `awk` ay mag-print ng mga linya ng file kung ang kung pahayag ay totoo. Dito, ang pahayag kung magiging totoo lamang kapag ang halaga ng NR ay hindi katumbas ng 1.

$pusabooklist.txt

$ang awkward '{if (NR! = 1) {print}}'booklist.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Kasama sa output ang lahat ng mga linya maliban sa unang linya ng file.

Halimbawa 4: I-print ang mga pangalan ng libro mula sa file ngunit laktawan ang unang linya

Dalawang `awk` na utos ang ginagamit sa halimbawang ito upang mai-print ang lahat ng mga pangalan ng libro maliban sa una. Basahin ng utos na `awk` ang unang haligi mula sa file batay sa separator ng patlang ( t) at ipadala ang output sa pangalawang 'awk` na utos. Ang pangalawang command na 'awk` ay mag-print ng nais na output.

$pusabooklist.txt

$ang awkward -F ' t' '{print $ 1}'booklist.txt| ang awkward 'NR! = 1 print}'

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Ipinapakita ng output ang lahat ng mga pangalan ng libro maliban sa unang libro.

Halimbawa 5: I-format ang nilalaman ng file pagkatapos lumaktaw sa unang linya

Ang pagpipiliang '-F', variable ng NR, at pagpapaandar ng printf ay ginagamit sa sumusunod na `awk` na utos upang makabuo ng naka-format na output pagkatapos na laktawan ang unang linya. Hahatiin ng utos ang nilalaman ng file sa mga haligi batay sa t, at i-print ng printf ang una at pangalawang mga haligi kapag ang halaga ng NR ay hindi bababa sa 2.

$pusabooklist.txt

$ang awkward -F ' t' 'NR> = 2 {printf'% 30s% 20s n ', $ 1, $ 2}'booklist.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Ipinapakita ng output ang naka-format na nilalaman ng file, hindi kasama ang unang linya ng file.

Halimbawa 6: I-print ang mga pangalan ng libro pagkatapos laktawan ang unang linya gamit ang NR at NF

Ang sumusunod na command na 'awk` ay gumagamit ng pagpipiliang '-F' at NR at NF upang mai-print ang mga pangalan ng libro pagkatapos na laktawan ang unang libro. Ginagamit ang opsyong ‘-F’ upang paghiwalayin ang nilalaman ng base ng file sa t. Ginagamit ang NR upang laktawan ang unang linya, at ang NF ay ginagamit upang mai-print ang unang haligi lamang.

$pusabooklist.txt

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

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Kasama sa output ang lahat ng mga pangalan ng libro sa file maliban sa sa unang libro.

Halimbawa 7: I-print ang naka-format na mga pangalan ng may-akda pagkatapos ng paglaktaw sa unang linya

Ang sumusunod na utos na `awk` ay gumagamit ng pagpipiliang '-F' at isang kondisyong pahayag upang mai-print ang mga pangalan ng may-akda pagkatapos na laktawan ang unang linya. Dito, ang halaga ng NR ay ginagamit sa kondisyong kung. Dito, Pangalan ng May-akda: n n ay mai-print bilang unang linya sa halip na ang nilalaman mula sa unang linya. Ang mga pangalan ng may-akda mula sa file ay mai-print para sa iba pang mga halaga ng NR.

$pusabooklist.txt

$ang awkward -F ' t' '{if (NR == 1) printf' nPangalan ng May-akda: n n '; kung hindi man printf '% s n', $ 2} 'booklist.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas. Ipinapakita ng output ang teksto, Pangalan ng May-akda: na may isang bagong linya, at lahat ng mga pangalan ng may-akda ay nakalimbag maliban sa una.

Konklusyon

Ang unang linya ng isang file ay maaaring laktawan sa pamamagitan ng paggamit ng iba't ibang mga utos ng Linux. Tulad ng ipinakita sa tutorial na ito, may iba't ibang mga paraan upang laktawan ang unang linya ng isang file sa pamamagitan ng paggamit ng 'awk` na utos. Kapansin-pansin, ang variable ng NR ng command na 'awk` ay maaaring magamit upang laktawan ang unang linya ng anumang file.