Awk-syötteen lukeminen STDIN:stä Linuxissa - Osa 7


Awk-työkalusarjan aiemmissa osissa tarkastelimme syötteen lukemista enimmäkseen tiedostosta (tiedostoista), mutta entä jos haluat lukea syötteen STDIN-koodista.

Tässä Awk-sarjan osassa 7 tarkastelemme muutamia esimerkkejä, joissa voit suodattaa muiden komentojen tulosteet sen sijaan, että luet syötteen tiedostosta.

Aloitamme dir-apuohjelmalla, joka toimii samalla tavalla kuin ls-komento. Ensimmäisessä alla olevassa esimerkissä käytämme komennon dir -l lähtöä syötteenä Awkille, joka tulostaa omistajan käyttäjänimen, ryhmänimen ja hänen tiedostonsa. /hän omistaa nykyisessä hakemistossa:

dir -l | awk '{print $3, $4, $9;}'

Katso toista esimerkkiä, jossa käytämme awk-lausekkeita. Tässä haluamme tulostaa root-käyttäjän omistamat tiedostot käyttämällä lauseketta suodattamaan merkkijonoja kuten alla olevassa awk-komennossa:

dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '

Yllä oleva komento sisältää vertailuoperaattorin (==), joka auttaa meitä suodattamaan pois nykyisen hakemiston tiedostot, jotka ovat juurikäyttäjän omistamia. Tämä saavutetaan lausekkeella $3== ”root ”.

Katsotaanpa toista esimerkkiä siitä, missä käytämme awk-vertailuoperaattoria vastaamaan tiettyä merkkijonoa.

Tässä olemme käyttäneet cat-apuohjelmaa katsoaksemme tecmint_deals.txt-nimisen tiedoston sisältöä ja haluamme tarkastella vain Tech-tyyppisiä tarjouksia, joten suoritamme seuraavat komennot:

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

Yllä olevassa esimerkissä olemme käyttäneet arvon ~ /pattern/ vertailuoperaattoria, mutta siinä on kaksi komentoa, joilla yritetään tuoda esiin jotain erittäin tärkeää.

Kun suoritat komennon tech-mallilla, mitään ei tulosteta, koska sen tyyppistä tarjousta ei ole, mutta Tech-komennon avulla saat tarjouksia kirjoita Tech.

Joten ole aina varovainen käyttäessäsi tätä vertailuoperaattoria, sillä se on isojen ja pienten kirjainten välinen ero, kuten olemme nähneet edellä.

Voit aina käyttää toisen komennon lähtöä sen sijaan syötteenä awk:lle sen sijaan, että luet syötteen tiedostosta. Tämä on hyvin yksinkertaista, kuten olemme tarkastelleet yllä olevissa esimerkeissä.

Toivottavasti esimerkit olivat tarpeeksi selkeitä, jotta ymmärrät. Jos sinulla on huolenaiheita, voit ilmaista ne alla olevan kommenttiosion kautta ja muista tarkistaa sarjan seuraava osa, jossa tarkastellaan awk-ominaisuuksia. kuten muuttujat, numeeriset lausekkeet ja määritysoperaattorit.