Com llegir l'entrada Awk de STDIN a Linux - Part 7


A les parts anteriors de la sèrie d'eines Awk, vam analitzar la lectura d'entrada principalment d'un fitxer o fitxers, però què passa si voleu llegir l'entrada de STDIN.

En aquesta part 7 de la sèrie Awk, veurem alguns exemples on podeu filtrar la sortida d'altres ordres en lloc de llegir l'entrada d'un fitxer.

Començarem amb l'ordre ls, al primer exemple següent, utilitzem la sortida de l'ordre dir -l com a entrada per a que Awk imprimeixi el nom d'usuari, el nom del grup i els fitxers que posseeix el propietari a l'actual directori:

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

Mireu un altre exemple on fem servir expressions awk, aquí volem imprimir fitxers propietat de l'usuari root mitjançant una expressió per filtrar cadenes com a l'ordre awk següent:

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

L'ordre anterior inclou l'operador de comparació (==) per ajudar-nos a filtrar els fitxers del directori actual que són propietat de l'usuari root. Això s'aconsegueix utilitzant l'expressió $3==”arrel”.

Vegem un altre exemple d'on utilitzem un operador de comparació awk per fer coincidir una cadena determinada.

Aquí, hem utilitzat la utilitat cat per veure el contingut d'un fitxer anomenat tecmint_deals.txt i només volem veure les ofertes de tipus Tech, així que executarem les ordres següents:

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

A l'exemple anterior, hem utilitzat l'operador de comparació de valors ~ /pattern/, però hi ha dues ordres per provar de treure alguna cosa molt important.

Quan executeu l'ordre amb tecnologia de patrons, no s'imprimeix res perquè no hi ha cap acord d'aquest tipus, però amb Tech, obteniu ofertes de tipus Tech.

Així que sempre aneu amb compte quan feu servir aquest operador de comparació, és sensible a majúscules i minúscules com hem vist anteriorment.

Sempre podeu utilitzar la sortida d'una altra ordre com a entrada per awk en comptes de llegir l'entrada d'un fitxer, això és molt senzill com hem vist als exemples anteriors.

Espero que els exemples hagin estat prou clars perquè els entenguis, si tens dubtes, pots expressar-los a través de la secció de comentaris a continuació i recorda revisar la següent part de la sèrie on veurem les característiques incòmodes com ara variables, expressions numèriques i operadors d'assignació.