Mikä on AWK NF?

Mika On Awk Nf



AWK-skriptikielessä on myös joukko sisäänrakennettuja erikoismuuttujia, jotka palvelevat joitain ennalta määritettyjä tarkoituksia. Yksi tällainen sisäänrakennettu muuttuja on 'NF', jolla on omat ennalta määritellyt toiminnallisuutensa. Tämä artikkeli tutkii tämän sisäänrakennetun AWK-muuttujan tarkoitusta näyttämällä joitakin asiaankuuluvia esimerkkejä Ubuntu 20.04:ssä.

AWK NF Ubuntu 20.04:ssä:

'NF' AWK-muuttujaa käytetään tulostamaan kenttien lukumäärä minkä tahansa toimitetun tiedoston kaikilla riveillä. Tämä sisäänrakennettu muuttuja toistaa tiedoston kaikki rivit yksitellen ja tulostaa kenttien lukumäärän erikseen kullekin riville. Ymmärtääksesi tämän toiminnon hienosti, sinun on luettava alla käsitellyt esimerkit.

Esimerkkejä AWK NF:n käytön osoittamisesta Ubuntu 20.04:ssä:

Seuraavat neljä esimerkkiä on suunniteltu opettamaan sinulle AWK NF:n käyttöä erittäin helposti ymmärrettävällä tavalla. Kaikki nämä esimerkit on toteutettu Ubuntu 20.04 -käyttöjärjestelmällä.







Esimerkki # 1: Tulosta kenttien määrä tekstitiedoston jokaiselta riviltä:

Tässä esimerkissä halusimme tulostaa Ubuntu 20.04:n tekstitiedoston jokaisen rivin tai rivin tai tietueen kenttien tai sarakkeiden lukumäärän. Olemme luoneet alla olevassa kuvassa näkyvän tekstitiedoston näyttääksemme sinulle tavan tehdä niin. Tämä tekstitiedosto sisältää omenoiden kilohinnat viidestä eri Pakistanin kaupungista.





Kun olimme luoneet tämän esimerkkitekstitiedoston, suoritimme seuraavan komennon tulostaaksemme kenttien lukumäärän tämän tekstitiedoston jokaiselta riviltä terminaalissamme:





$ awk ' { tulosta NF } AppleRates.txt

Tässä komennossa meillä on 'awk'-avainsana, joka osoittaa, että käytämme AWK-komentoa, jota seuraa 'print NF' -käsky, joka yksinkertaisesti iteroi kohdetekstitiedoston jokaisen rivin ja tulostaa kenttien lukumäärän erikseen jokaiselle. tekstitiedoston riviä. Lopuksi meillä on tekstitiedoston nimi (jonka kentät lasketaan), joka meidän tapauksessamme on 'AppleRatest.txt'.



Koska meillä oli täsmälleen sama määrä kenttiä kaikilla tekstitiedostomme viidellä rivillä, eli 2, tämän komennon suorittamisen vuoksi tulostetaan sama määrä kuin kenttiä kaikille tekstitiedoston riveille. Tämä näkyy alla olevasta kuvasta:

Esimerkki # 2: Tulosta kenttien määrä tekstitiedoston jokaiselta riviltä esitettävällä tavalla:

Yllä käsitellyssä esimerkissä näkyvä tulos voidaan esittää myös hienosti näyttämällä tekstitiedoston rivinumerot ja kenttien lukumäärä kunkin rivin kohdalla. Lisäksi voimme myös erottaa rivinumerot kenttien määrästä millä tahansa erikoismerkillä. Käytämme samaa tekstitiedostoa, jota käytimme ensimmäisessä esimerkissämme näyttääksemme tämän. Tässä tapauksessa suoritettava komentomme eroaa kuitenkin hieman, ja se on seuraava:

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

Tässä komennossa olemme ottaneet käyttöön sisäänrakennetun AWK-muuttujan 'NR', joka yksinkertaisesti tulostaa kohdetekstitiedostomme kaikkien rivien rivinumerot. Lisäksi olemme käyttäneet kolmea viivaa, '-' erikoismerkkinä erottamaan rivinumerot toimittamamme tekstitiedoston kenttien määrästä.

Saman tekstitiedoston hieman muokattu tulos näkyy alla olevassa kuvassa:

Esimerkki 3: Tulosta ensimmäinen ja viimeinen kentät jokaiselta tekstitiedoston riviltä:

Sen lisäksi, että pelkkä tekstitiedoston kaikkien rivien kenttien lukumäärä lasketaan, AWK:n erityismuuttujaa 'NF' voidaan käyttää myös viimeisen kentän todellisten arvojen poimimiseen toimitetusta tekstitiedostosta. Jälleen olemme käyttäneet samaa tekstitiedostoa, joita olemme käyttäneet kahdessa ensimmäisessä esimerkissämme. Haluamme kuitenkin tulostaa tekstitiedostomme ensimmäisen ja viimeisen kentän todelliset arvot tässä esimerkissä. Tätä varten suoritimme seuraavan komennon:

$ awk ' { Tulosta $1 , $NF } AppleRates.txt

Avainsanaa 'awk' seuraa käsky 'print $1, $NF' tässä komennossa. Erikoismuuttujaa '$1' on käytetty antamamme tekstitiedostomme ensimmäisen kentän tai ensimmäisen sarakkeen arvojen tulostamiseen, kun taas '$NF' AWK-muuttujaa on käytetty viimeisen kentän tai viimeisen sarakkeen arvojen tulostamiseen. kohdetekstitiedostostamme. Sinun täytyy huomata tässä, että kun käytämme 'NF' AWK-muuttujaa sellaisenaan, sitä käytetään laskemaan kunkin rivin kenttien lukumäärä; kuitenkin, kun sitä käytetään dollarin '$' symbolin kanssa, se yksinkertaisesti poimii todelliset arvot toimitetun tekstitiedoston viimeisestä kentästä. Loput komennosta on suurin piirtein samat kuin komennot, joita on käytetty kahdessa ensimmäisessä esimerkissä.

Alla olevassa tulosteessa näet, että toimittamamme tekstitiedostomme ensimmäisen ja viimeisen kentän todelliset arvot on tulostettu päätteelle. Voit nähdä, että tämä tulos on melko samanlainen kuin 'kissa'-komennon tulos vain siksi, että toimitetussa tekstitiedostossamme oli vain kaksi kenttää; joten tavallaan koko tekstitiedostomme sisältö tulostettiin päätteelle edellä mainitun komennon suorittamisen seurauksena.

Esimerkki 4: Erottele tietueet, joissa on puuttuvat kentät tekstitiedostossa:

Joskus tekstitiedostossa on tietueita, joista puuttuu tiettyjä kenttiä, ja sinun kannattaa ehkä erottaa ne tietueet niistä, jotka ovat kaikilta osin täydellisiä. Tämä voidaan tehdä myös 'NF' AWK-muuttujan avulla. Tätä varten olemme luoneet tekstitiedoston nimeltä 'ExamMarks.txt', joka sisältää viiden eri opiskelijan koepisteet kolmessa eri kokeessa heidän nimeineen. Kolmannessa kokeessa osa opiskelijoista oli kuitenkin poissa, minkä vuoksi heidän pisteensä puuttuivat. Tämä tekstitiedosto on seuraava:

Erottaaksemme tietueet, joissa on puuttuvat kentät, tietueista, joissa on täydet kentät, suoritamme alla olevan komennon:

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

Tämä komento on sama kuin se, jota olemme käyttäneet toisessa esimerkissämme. Tämän komennon tulosteesta, joka näkyy seuraavassa kuvassa, voit kuitenkin nähdä, että ensimmäinen ja neljäs tietue ovat valmiit, kun taas toinen, kolmas ja viides tietue sisältävät puuttuvia kenttiä.

Johtopäätös:

Tämän artikkelin tarkoituksena oli selittää 'NF' AWK -erikoismuuttujan käyttöä. Keskustelimme ensin lyhyesti, kuinka tämä muuttuja toimii, ja sen jälkeen kehitimme tätä käsitettä hyvin neljän erilaisen esimerkin avulla. Kun ymmärrät kaikki jaetut esimerkit hyvin, voit käyttää 'NF' AWK-muuttujaa laskeaksesi kenttien kokonaismäärän ja tulostaaksesi toimitetun tiedoston viimeisen kentän todelliset arvot.