Kā lasīt Awk ievadi no STDIN operētājsistēmā Linux - 7. daļa


Iepriekšējās Awk rīku sērijas daļās mēs aplūkojām ievades lasīšanu galvenokārt no faila (-iem), bet ko darīt, ja vēlaties lasīt ievadi no STDIN.

Šajā Awk sērijas 7. daļā mēs aplūkosim dažus piemērus, kur jūs varat filtrēt citu komandu izvadi, nevis lasīt ievades no faila.

Mēs sāksim ar komandu ls. Pirmajā piemērā mēs izmantojam komandas dir -l izvadi kā Awk ievadi, lai pašreizējā pašreizējā versijā izdrukātu īpašnieka lietotājvārdu, grupas nosaukumu un failus, kas viņam pieder. katalogs:

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

Apskatiet citu piemēru, kur mēs izmantojam awk izteiksmes, šeit mēs vēlamies izdrukāt root lietotājam piederošos failus, izmantojot izteiksmi virkņu filtrēšanai, kā norādīts zemāk esošajā komandā awk:

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

Iepriekš norādītajā komandā ir iekļauts (==) salīdzināšanas operators, lai palīdzētu mums filtrēt pašreizējā direktorijā esošos failus, kas pieder saknes lietotājam. To panāk, izmantojot izteicienu $3 == ”root” .

Apskatīsim vēl vienu piemēru, kur mēs izmantojam awk salīdzināšanas operatoru, lai saskaņotu noteiktu virkni.

Šeit mēs izmantojām kaķu utilītu, lai apskatītu faila tecmint_deals.txt saturu, un mēs vēlamies apskatīt tikai Tech tipa piedāvājumus, tāpēc mēs izpildīsim šādas komandas:

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

Iepriekš minētajā piemērā mēs izmantojām vērtību ~/pattern/ salīdzināšanas operatoru, taču ir divas komandas, lai mēģinātu izcelt kaut ko ļoti svarīgu.

Palaižot komandu ar modeļa tehnoloģiju, nekas netiek izdrukāts, jo nav šāda veida darījumu, bet ar Tech jūs saņemat Tech veida piedāvājumus.

Tāpēc vienmēr lietojiet piesardzību, izmantojot šo salīdzināšanas operatoru, jo tas ir reģistrjutīgi, kā redzējām iepriekš.

Tā vietā, lai lasītu ievades no faila, jūs vienmēr varat izmantot citas komandas izvadi kā awk ievadi, tas ir ļoti vienkārši, kā mēs to aplūkojām iepriekšējos piemēros.

Ceru, ka piemēri bija pietiekami skaidri, lai jūs varētu saprast. Ja jums ir kādas šaubas, varat tos izteikt, izmantojot komentāru sadaļu zemāk, un atcerieties pārbaudīt nākamo sērijas daļu, kur mēs aplūkosim awk funkcijas, piemēram, mainīgos, skaitliskos izteicienus un uzdevumu operatori.