Az STDIN awk bemenetének olvasása Linux alatt – 7. rész
Az Awk eszközsorozat korábbi részeiben a bemeneti bevitelt főként fájl(ok)ból vizsgáltuk, de mi van akkor, ha az STDINből szeretné olvasni a bemenetet.
Az Awk sorozatnak ebben a 7. részében néhány olyan példát tekintünk meg, amelyekre más parancsok kimenetét szűrheti ahelyett, hogy fájlból olvasná be a bemenetet.
Kezdjük a dir segédprogrammal, amely az ls parancshoz hasonlóan működik, az alábbi első példában a dir -l
parancs kimenetét használjuk az Awk bemeneteként, hogy kinyomtassuk a tulajdonos felhasználónevét, csoportnevét és fájljait. /tulajdonosa az aktuális könyvtárban:
dir -l | awk '{print $3, $4, $9;}'
Vessen egy pillantást egy másik példára, ahol awk kifejezéseket használunk. Itt a root felhasználó tulajdonában lévő fájlokat szeretnénk kinyomtatni egy kifejezés használatával a karakterláncok szűrésére, mint az alábbi awk parancsban:
dir -l | awk '$3=="root" {print $1,$3,$4, $9;} '
A fenti parancs tartalmazza a (==)
összehasonlító operátort, amely segít kiszűrni az aktuális könyvtárban található fájlokat, amelyek a root felhasználó tulajdonában vannak. Ez a $3== ”root ”
kifejezéssel érhető el.
Nézzünk egy másik példát arra, amikor egy awk összehasonlító operátort használunk egy bizonyos karakterlánc egyeztetésére.
Itt a cat segédprogramot használtuk a tecmint_deals.txt nevű fájl tartalmának megtekintéséhez, és csak a Tech típusú ügyleteket szeretnénk megtekinteni, ezért futtatjuk a a következő parancsok:
cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'
A fenti példában a ~ /pattern/
összehasonlító operátort használtuk, de két paranccsal próbálunk kihozni valami nagyon fontosat.
Ha a parancsot a tech mintával futtatja, akkor semmi sem kerül kinyomtatásra, mert nincs ilyen típusú ügylet, de a Tech esetén ajánlatokat kap írja be a Tech kifejezést.
Ezért mindig legyen óvatos, amikor ezt az összehasonlító operátort használja, mivel érzékeny a kis- és nagybetűkre, amint azt fentebb láttuk.
Mindig használhatja egy másik parancs kimenetét az awk bemeneteként, ahelyett, hogy egy fájlból olvasná be a bemenetet, ez nagyon egyszerű, ahogy a fenti példákban megnéztük.
Reméljük, hogy a példák elég világosak voltak ahhoz, hogy megértsd, ha bármilyen aggálya van, kifejezheti azokat az alábbi megjegyzés részben, és ne felejtse el megnézni a sorozat következő részét, ahol az awk funkciókat fogjuk megvizsgálni. például változók, numerikus kifejezések és hozzárendelési operátorok.