Mis on AWK NF?

Mis On Awk Nf



AWK skriptikeelel on ka rida sisseehitatud spetsiaalseid muutujaid, mis teenivad teatud eelmääratletud eesmärke. Üks selline sisseehitatud muutuja on 'NF', millel on oma eelmääratletud funktsionaalsus. See artikkel uurib selle sisseehitatud AWK muutuja eesmärki, näidates mõnda asjakohast näidet versioonis Ubuntu 20.04.

AWK NF Ubuntu versioonis 20.04:

NF AWK muutujat kasutatakse väljade arvu printimiseks mis tahes esitatud faili kõikidel ridadel. See sisseehitatud muutuja kordab ükshaaval läbi faili kõik read ja prindib iga rea ​​jaoks eraldi väljade arvu. Selle funktsiooni kenasti mõistmiseks peate läbi lugema allpool käsitletud näited.

Näited AWK NF-i kasutamise demonstreerimiseks Ubuntu 20.04-s:

Järgmised neli näidet on loodud viisil, mis õpetab teile AWK NF-i kasutamist väga lihtsalt arusaadaval viisil. Kõik need näited on rakendatud operatsioonisüsteemi Ubuntu 20.04 abil.







Näide # 1: Printige väljade arv tekstifaili igalt realt:

Selles näites soovisime printida Ubuntu 20.04 tekstifaili iga rea ​​või rea või kirje väljade või veergude arvu. Selle meetodi näitamiseks oleme loonud alloleval pildil näidatud tekstifaili. See tekstifail sisaldab õunte koguseid kilogrammi kohta viies erinevas Pakistani linnas.





Kui olime selle näidistekstifaili loonud, täitsime järgmise käsu, et printida väljade arv selle tekstifaili igal real meie terminalis:





$ awk ' { print NF } AppleRates.txt

Selles käsus on meil märksõna 'awk', mis näitab, et käivitame AWK-käsu, millele järgneb avaldus 'print NF', mis lihtsalt kordab sihttekstifaili iga rida ja prindib iga väljade arvu eraldi. tekstifaili rida. Lõpuks on meil selle tekstifaili nimi (mille väljad loendatakse), mis meie puhul on 'AppleRatest.txt'.



Kuna meil oli tekstifaili kõigi viie rea jaoks täpselt sama arv välju, st 2, prinditakse selle käsu täitmise tõttu sama arv väljasid kõigi tekstifaili ridade jaoks. Seda on näha allolevalt pildilt:

Näide # 2: Printige väljade arv tekstifaili igalt realt esitleval viisil:

Eespool käsitletud näites kuvatud väljundit saab kenasti esitada ka tekstifaili iga rea ​​reanumbrite ja väljade arvu kuvamisega. Lisaks saame eraldada ridade numbrid väljade arvust mis tahes meie valitud erimärgiga. Selle näitamiseks kasutame sama tekstifaili, mida kasutasime oma esimeses näites. Kuid meie käsk, mida sel juhul täidetakse, erineb veidi ja see on järgmine:

$ awk ' { print NR, “---”, NF } AppleRates.txt

Selles käsus oleme kasutusele võtnud sisseehitatud AWK muutuja 'NR', mis lihtsalt prindib meie sihttekstifaili kõigi ridade reanumbrid. Lisaks oleme kasutanud kolme kriipsu, erimärgina “-”, et eraldada reanumbrid meie pakutava tekstifaili väljade arvust.

See sama tekstifaili veidi muudetud väljund on näidatud alloleval pildil:

Näide # 3: Printige tekstifaili igalt realt esimene ja viimane väli:

Lisaks esitatud tekstifaili kõikide ridade väljade loendamisele saab AWK erimuutujat NF kasutada ka viimase välja tegelike väärtuste eraldamiseks esitatud tekstifailist. Jällegi oleme kasutanud sama tekstifaili, mida kasutasime kahe esimese näite puhul. Siiski tahame selles näites printida oma tekstifaili esimese ja viimase välja tegelikud väärtused. Selleks täitsime järgmise käsu:

$ awk ' { printida 1 dollar , $NF } AppleRates.txt

Märksõnale 'awk' järgneb selles käsus lause 'print $1, $NF'. Spetsiaalset muutujat '$1' on kasutatud meie pakutava tekstifaili esimese välja või esimese veeru väärtuste printimiseks, samas kui AWK muutujat '$NF' on kasutatud viimase välja või viimase veeru väärtuste printimiseks. meie sihttekstifailist. Peate siin märkama, et kui me kasutame AWK muutujat 'NF' sellisel kujul, nagu see on, kasutatakse seda iga rea ​​väljade arvu loendamiseks; aga kui seda kasutatakse dollari sümboliga '$', siis eraldab see lihtsalt tegelikud väärtused esitatud tekstifaili viimaselt väljalt. Ülejäänud käsk on enam-vähem sama, mis kahe esimese näite puhul kasutatud käskude oma.

Allpool näidatud väljundis näete, et meie pakutava tekstifaili esimese ja viimase välja tegelikud väärtused on terminalis trükitud. Näete, et see väljund on üsna sarnane käsu 'cat' väljundiga ainuüksi seetõttu, et meie pakutud tekstifailis oli ainult kaks välja; seetõttu trükiti ülalmainitud käsu täitmise tulemusel terminalis teatud mõttes kogu meie tekstifaili sisu.

Näide # 4: Eraldage tekstifailis kirjed puuduvate väljadega:

Mõnikord on tekstifailis mõned kirjed, millel on teatud väljad puudu, ja võite soovida need kirjed eraldada kirjetest, mis on igas aspektis täielikud. Seda saab teha ka AWK muutuja NF abil. Selleks oleme loonud tekstifaili nimega “ExamMarks.txt”, mis sisaldab viie erineva õpilase eksamitulemusi kolmel erineval eksamil koos nende nimedega. Kolmandaks eksamiks aga puudusid osad õpilased, mille tõttu jäid hinded puudu. See tekstifail on järgmine:

Puuduvate väljadega kirjete eristamiseks täielike väljadega kirjetest täidame alloleva käsu:

$ awk ' { print NR, “--- > ”, NF } ExamMarks.txt

See käsk on sama, mida kasutasime oma teise näite jaoks. Selle käsu väljundist, mis on näidatud järgmisel pildil, näete aga, et esimene ja neljas kirje on valmis, samas kui teine, kolmas ja viies kirje sisaldavad puuduvaid välju.

Järeldus:

Selle artikli eesmärk oli selgitada AWK erimuutuja “NF” kasutamist. Esmalt arutasime lühidalt, kuidas see muutuja töötab, ja seejärel arendasime seda kontseptsiooni nelja erineva näite abil hästi välja. Kui olete kõigist jagatud näidetest hästi aru saanud, saate kasutada AWK muutujat NF, et lugeda väljade koguarv ja printida esitatud faili viimase välja tegelikud väärtused.