Cómo leer la entrada de Awk de STDIN en Linux - Parte 7


En las partes anteriores de la serie de herramientas Awk, analizamos la lectura de entrada principalmente de un archivo (s), pero ¿qué pasa si desea leer la entrada de STDIN .

En esta Parte 7 de la serie Awk, veremos algunos ejemplos en los que puede filtrar la salida de otros comandos en lugar de leer la entrada de un archivo.

Comenzaremos con la utilidad dir que funciona de manera similar al comando ls, en el primer ejemplo a continuación, usamos la salida del comando dir -l como entrada para que Awk imprima el nombre de usuario del propietario, el nombre del grupo y los archivos que/ella posee en el directorio actual:

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

Eche un vistazo a otro ejemplo en el que empleamos expresiones awk. Aquí, queremos imprimir los archivos que son propiedad del usuario root utilizando una expresión para filtrar cadenas como en el comando awk a continuación:

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

El comando anterior incluye el operador de comparación (==) para ayudarnos a filtrar los archivos en el directorio actual que son propiedad del usuario root. Esto se logra usando la expresión == "root" .

Veamos otro ejemplo de donde usamos un operador de comparación awk para hacer coincidir una determinada cadena.

Aquí, hemos utilizado la utilidad cat para ver el contenido de un archivo llamado tecmint_deals.txt y queremos ver las ofertas del tipo Tech solo, por lo que ejecutaremos siguientes comandos:

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

En el ejemplo anterior, hemos utilizado el operador de comparación de valor ~/pattern/, pero hay dos comandos para intentar sacar algo muy importante.

Cuando ejecuta el comando con el patrón tecnología , no se imprime nada porque no hay un trato de ese tipo, pero con Tecnología , obtiene ofertas de escribe tecnología .

Así que siempre tenga cuidado al usar este operador de comparación, es sensible a las mayúsculas y minúsculas como hemos visto anteriormente.

Siempre puede usar la salida de otro comando como una entrada para awk en lugar de leer la entrada de un archivo, esto es muy simple, como hemos visto en los ejemplos anteriores.

Espero que los ejemplos sean lo suficientemente claros para que usted los entienda, si tiene alguna inquietud, puede expresarlos a través de la sección de comentarios a continuación y recuerde revisar la siguiente parte de la serie donde veremos awk como variables , expresiones numéricas y operadores de asignación .