Kuidas lugeda Linuxi STDIN-i Awk-sisendit - 7. osa


Awk-tööriistade sarja eelmistes osades vaatasime sisendi lugemist enamasti failist (failidest), kuid mis siis, kui soovite lugeda sisendit STDIN-ist.

Selles Awk-seeria 7. osas vaatleme mõnda näidet, kus saate failist sisendi lugemise asemel filtreerida teiste käskude väljundit.

Alustame käsuga ls, esimeses allpool toodud näites kasutame käsu dir -l väljundit Awki sisendina omaniku kasutajanime, grupinime ja talle kuuluvate failide printimiseks kataloog:

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

Vaadake veel ühte näidet, kus kasutame awk-väljendeid, siin soovime printida juurkasutajale kuuluvad failid, kasutades stringide filtreerimiseks avaldist, nagu allpool käsk awk:

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

Ülaltoodud käsk sisaldab võrdlusoperaatorit (==) , mis aitab meil filtreerida praeguses kataloogis olevad failid, mis kuuluvad juurkasutajale. See saavutatakse avaldise $3 == ”root” abil.

Vaatame veel ühte näidet selle kohta, kus teatud stringile sobitamiseks kasutame awk võrdlusoperaatorit.

Siin oleme kassi utiliiti kasutanud faili tecmint_deals.txt sisu vaatamiseks ja soovime vaadata ainult tüüpi Tech tehinguid, seega käivitame järgmised käsud:

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

Eespool toodud näites oleme kasutanud väärtuse ~/pattern/ võrdlusoperaatorit, kuid on olemas kaks käsku, et proovida välja tuua midagi väga olulist.

Kui käivitate mustritehnikaga käsu, ei prindita midagi välja, kuna seda tüüpi tehinguid pole, kuid Techiga saate Techi tüüpi pakkumisi.

Nii et olge selle võrdlusoperaatori kasutamisel alati ettevaatlik, see on tõstutundlik, nagu eespool nägime.

Failist sisendi lugemise asemel võite alati kasutada mõne teise käsu väljundit awk-i sisendina, see on väga lihtne, nagu me oleme seda ülaltoodud näidetes vaadanud.

Loodetavasti olid näited piisavalt arusaadavad, et saaksite aru saada. Kui teil on mingeid muresid, võite need väljendada alloleva kommentaaride jaotise kaudu ja meeles pidada, et kontrollige sarja järgmist osa, kus vaatame awk-funktsioone, nagu muutujad, numbrilised avaldised ja ülesandeoperaatorid.