Linux-da STDIN-den awk girişini nädip okamaly - 7-nji bölüm


“Awk” gurallar seriýasynyň öňki bölümlerinde giriş ýazgylaryny esasan bir faýldan (lardan) okaýardyk, ýöne STDIN-den giriş okamak isleseňiz näme bolar?

Awk seriýasynyň 7-nji bölüminde, bir faýldan giriş okamagyň ýerine beýleki buýruklaryň çykyşyny süzüp boljak birnäçe mysallara serederis.

Ls buýrugy bilen başlarys, aşakdaky ilkinji mysalda, Awk üçin eýesiniň ulanyjy adyny, topar adyny we häzirki faýllaryny çap etmek üçin Awk üçin giriş hökmünde dir -l buýrugyny ulanýarys. katalog:

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

Awk aňlatmalaryny ulanýan başga bir mysalymyza göz aýlaň, bu ýerde aşakdaky awk buýrugynda bolşy ýaly setirleri süzmek üçin aňlatma ulanyp, kök ulanyjynyň eýeçiligindäki faýllary çap etmek isleýäris:

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

Aboveokardaky buýruk, kök ulanyjynyň eýeçiligindäki häzirki katalogdaky faýllary süzmegimize kömek etmek üçin (==) deňeşdirme operatoryny öz içine alýar. Bu, $3 == kök aňlatmasy arkaly gazanylýar.

Belli bir setire gabat gelmek üçin oňaýsyz deňeşdirme operatoryny nirede ulanýandygymyzyň başga bir mysalyna seredeliň.

Bu ýerde, tecmint_deals.txt atly faýlyň mazmunyny görmek üçin pişik peýdasyndan peýdalandyk we diňe Tech görnüşindäki geleşikleri görmek isleýäris, şonuň üçin aşakdaky buýruklary ýerine ýetireris:

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

Aboveokardaky mysalda, ~/pattern/ deňeşdirme operatorynyň bahasyny ulandyk, ýöne gaty möhüm bir zady synap görmek we çykarmak üçin iki buýruk bar.

Buýrugy nagyş tehnologiýasy bilen işledeniňizde hiç zat çap edilmeýär, sebäbi bu görnüşdäki şertnama ýok, ýöne Tech bilen Tech görnüşi geleşikleri bolýar.

Şonuň üçin bu deňeşdirme operatory ulananyňyzda hemişe seresap boluň, ýokarda görşümiz ýaly uly duýgur.

Elmydama başga bir buýrugyň çykyşyny bir faýldan giriş okamagyň ýerine awk üçin giriş hökmünde ulanyp bilersiňiz, ýokardaky mysallarda görşümiz ýaly bu gaty ýönekeý.

Mysallar size düşünmek üçin ýeterlikdi diýip umyt edýärin, haýsydyr bir aladaňyz bar bolsa, aşakdaky teswirler bölüminiň üsti bilen beýan edip bilersiňiz we üýtgeýjiler, san aňlatmalary ýaly oňaýsyz aýratynlyklara seredip geçjek seriýamyzyň indiki bölümini barlamagy ýatdan çykarmaň. bellemek operatorlary.