Kas ir AWK NF?

Kas Ir Awk Nf



AWK skriptu valodai ir arī virkne iebūvētu īpašu mainīgo, kas kalpo dažiem iepriekš noteiktiem mērķiem. Viens no šādiem iebūvētajiem mainīgajiem ir “NF”, kam ir sava iepriekš noteikta funkcionalitāte. Šajā rakstā tiks izpētīts šī iebūvētā AWK mainīgā mērķis, demonstrējot dažus atbilstošus piemērus Ubuntu 20.04.

AWK NF Ubuntu 20.04:

“NF” AWK mainīgais tiek izmantots, lai drukātu lauku skaitu visās jebkura nodrošinātā faila rindās. Šis iebūvētais mainīgais atkārto visas faila rindas pa vienai un izdrukā lauku skaitu atsevišķi katrai rindai. Lai labi izprastu šo funkcionalitāti, jums būs jāizlasa tālāk aplūkotie piemēri.

Piemēri AWK NF izmantošanas demonstrēšanai Ubuntu 20.04:

Sekojošie četri piemēri ir izstrādāti tā, lai ļoti viegli saprotamā veidā iemācītu jums lietot AWK NF. Visi šie piemēri ir ieviesti, izmantojot Ubuntu 20.04 operētājsistēmu.







1. piemērs: izdrukājiet lauku skaitu no katras teksta faila rindas:

Šajā piemērā mēs vēlējāmies izdrukāt lauku vai kolonnu skaitu katrā Ubuntu 20.04 teksta faila rindā vai rindā vai ierakstā. Lai parādītu, kā to izdarīt, mēs esam izveidojuši teksta failu, kas parādīts zemāk esošajā attēlā. Šajā teksta failā ir norādītas ābolu likmes uz kilogramu no piecām dažādām Pakistānas pilsētām.





Kad esam izveidojuši šo teksta faila paraugu, mēs izpildījām šādu komandu, lai mūsu terminālī izdrukātu lauku skaitu no katras šī teksta faila rindas:





$ awk ' { drukāt NF } AppleRates.txt

Šajā komandā mums ir atslēgvārds “awk”, kas parāda, ka mēs palaižam AWK komandu, kam seko paziņojums “print NF”, kas vienkārši atkārtos katru mērķa teksta faila rindiņu un izdrukās lauku skaitu atsevišķi katram. teksta faila rindiņu. Visbeidzot, mums ir šī teksta faila nosaukums (kura lauki ir jāuzskaita), kas mūsu gadījumā ir “AppleRatest.txt”.



Tā kā visām piecām teksta faila rindām mums bija tieši vienāds lauku skaits, t.i., 2, šīs komandas izpildes dēļ tiek izdrukāts tāds pats lauku skaits kā visām teksta faila rindām. To var redzēt no attēla zemāk:

2. piemērs. Izdrukājiet lauku skaitu no katras teksta faila rindiņas reprezentatīvā veidā:

Iepriekš apskatītajā piemērā parādīto izvadi var arī labi parādīt, parādot katras teksta faila rindas rindu numurus un lauku skaitu. Turklāt mēs varam arī atdalīt rindu numurus no lauku skaita ar jebkuru īpašu rakstzīmi pēc mūsu izvēles. Mēs izmantosim to pašu teksta failu, ko izmantojām pirmajā piemērā, lai to parādītu. Tomēr mūsu komanda, kas jāizpilda šajā gadījumā, nedaudz atšķirsies, un tā ir šāda:

$ awk ' { drukāt NR, “---”, NF } AppleRates.txt

Šajā komandā mēs esam ieviesuši iebūvēto AWK mainīgo “NR”, kas vienkārši izdrukās visu mūsu mērķa teksta faila rindu rindu numurus. Turklāt mēs esam izmantojuši trīs domuzīmes — — kā speciālo rakstzīmi, lai atdalītu rindu numurus no mūsu nodrošinātā teksta faila lauku skaita.

Šī nedaudz pārveidotā tā paša teksta faila izvade ir parādīta zemāk esošajā attēlā:

3. piemērs: izdrukājiet pirmo un pēdējo lauku no katras teksta faila rindas:

Papildus tikai visu nodrošinātā teksta faila rindu lauku skaita skaitīšanai, AWK īpašo mainīgo “NF” var izmantot arī, lai no nodrošinātā teksta faila iegūtu pēdējā lauka faktiskās vērtības. Atkal esam izmantojuši to pašu teksta failu, ko izmantojām pirmajos divos piemēros. Tomēr šajā piemērā mēs vēlamies izdrukāt teksta faila pirmā un pēdējā lauka faktiskās vērtības. Šim nolūkam mēs izpildījām šādu komandu:

$ awk ' { drukāt 1 $ , $NF } AppleRates.txt

Atslēgvārdam “awk” šajā komandā seko paziņojums “print $1, $NF”. Īpašais mainīgais “$1” ir izmantots, lai drukātu mūsu nodrošinātā teksta faila pirmā lauka vai pirmās kolonnas vērtības, savukārt AWK mainīgais “$NF” ir izmantots, lai drukātu pēdējā lauka vai pēdējās kolonnas vērtības. no mūsu mērķa teksta faila. Šeit jums jāņem vērā, ka, ja mēs izmantojam “NF” AWK mainīgo tādu, kāds tas ir, tas tiek izmantots, lai saskaitītu katras rindas lauku skaitu; tomēr, ja to lieto kopā ar dolāra simbolu “$”, tas vienkārši izvilks faktiskās vērtības no nodrošinātā teksta faila pēdējā lauka. Pārējā komanda ir vairāk vai mazāk tāda pati kā komandām, kas tika izmantotas pirmajos divos piemēros.

Zemāk redzamajā izvadē varat redzēt, ka faktiskās vērtības no mūsu nodrošinātā teksta faila pirmā un pēdējā lauka ir izdrukātas terminālī. Var redzēt, ka šī izvade ir diezgan līdzīga komandas “cat” izvadei tikai tāpēc, ka mūsu nodrošinātajā teksta failā bija tikai divi lauki; tāpēc savā ziņā visa mūsu teksta faila saturs tika izdrukāts terminālī iepriekš minētās komandas izpildes rezultātā.

4. piemērs: atdaliet ierakstus ar trūkstošajiem laukiem teksta failā:

Reizēm teksta failā ir daži ieraksti ar noteiktiem trūkstošiem laukiem, un jūs varētu vēlēties atdalīt šos ierakstus no tiem, kas ir pabeigti visos aspektos. To var izdarīt arī, izmantojot “NF” AWK mainīgo. Šim nolūkam esam izveidojuši teksta failu ar nosaukumu “ExamMarks.txt”, kurā ir iekļauti piecu dažādu skolēnu eksāmenu rezultāti trīs dažādos eksāmenos, kā arī viņu vārdi. Tomēr uz trešo eksāmenu daži studenti nebija klāt, tāpēc viņiem nebija punktu. Šis teksta fails ir šāds:

Lai atšķirtu ierakstus ar trūkstošiem laukiem no ierakstiem ar pilniem laukiem, mēs izpildīsim tālāk norādīto komandu:

$ awk ' { drukāt NR, “--- > ”, NF } ExamMarks.txt

Šī komanda ir tāda pati kā tā, ko izmantojām otrajā piemērā. Tomēr no šīs komandas izvades, kas parādīta nākamajā attēlā, var redzēt, ka pirmais un ceturtais ieraksts ir pabeigts, savukārt otrajā, trešajā un piektajā ierakstā trūkst lauku.

Secinājums:

Šī raksta mērķis bija izskaidrot “NF” AWK īpašā mainīgā lietojumu. Vispirms mēs īsi apspriedām, kā šis mainīgais darbojas, un pēc tam mēs labi izstrādājām šo koncepciju, izmantojot četrus dažādus piemērus. Kad labi sapratīsit visus kopīgotos piemērus, varēsiet izmantot AWK mainīgo “NF”, lai saskaitītu kopējo lauku skaitu un izdrukātu sniegtā faila pēdējā lauka faktiskās vērtības.