Kaip skaityti „Awk“ įvestį iš STDIN sistemoje „Linux“ – 7 dalis


Ankstesnėse „Awk“ įrankių serijos dalyse žiūrėjome į skaitymo įvestį daugiausia iš failo (-ų), bet ką daryti, jei norite skaityti įvestį iš STDIN.

Šioje „Awk“ serijos 7 dalyje apžvelgsime keletą pavyzdžių, kai galite filtruoti kitų komandų išvestį, o ne skaityti įvestį iš failo.

Pradėsime nuo dir programos, kuri veikia panašiai kaip komanda ls. Pirmajame pavyzdyje žemiau, mes naudojame komandos dir -l išvestį kaip Awk įvestį, kad išspausdintų savininko vartotojo vardą, grupės pavadinimą ir failus, kuriuos jis turi. /jai priklauso dabartiniame kataloge:

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

Pažvelkite į kitą pavyzdį, kai naudojame awk išraiškas. Čia norime spausdinti failus, priklausančius root vartotojui, naudodami išraišką, skirtą eilutėms filtruoti, kaip nurodyta toliau pateiktoje awk komandoje:

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

Aukščiau pateiktoje komandoje yra palyginimo operatorius (==), kuris padeda mums išfiltruoti failus iš dabartinio katalogo, kurie priklauso šakniniam vartotojui. Tai pasiekiama naudojant išraišką $3== ”root ”.

Pažvelkime į kitą pavyzdį, kai naudojame awk palyginimo operatorių, kad atitiktų tam tikrą eilutę.

Čia naudojome „cat“ įrankį, norėdami peržiūrėti failo, pavadinto tecmint_deals.txt turinį, ir norime peržiūrėti tik Tech tipo pasiūlymus, todėl vykdysime šios komandos:

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

Aukščiau pateiktame pavyzdyje naudojome vertės ~ /pattern/ palyginimo operatorių, tačiau yra dvi komandos, kurios bando parodyti kažką labai svarbaus.

Kai vykdote komandą su šablonu tech, nieko neišspausdinama, nes nėra tokio tipo sutarimo, bet su Tech gaunate pasiūlymus įveskite Tech.

Todėl visada būkite atsargūs naudodami šį palyginimo operatorių, nes jis yra didžiosios ir mažosios raidės, kaip matėme aukščiau.

Visada galite naudoti kitos komandos išvestį kaip awk įvestį, o ne skaityti įvestį iš failo. Tai labai paprasta, kaip matėme aukščiau pateiktuose pavyzdžiuose.

Tikimės, kad pavyzdžiai buvo pakankamai aiškūs, kad suprastumėte. Jei turite kokių nors rūpesčių, galite juos išreikšti toliau pateiktoje komentarų skiltyje ir nepamirškite peržiūrėti kitoje serijos dalyje, kurioje apžvelgsime awk funkcijas. pvz., kintamieji, skaitinės išraiškos ir priskyrimo operatoriai.