Cómo leer la entrada de Awk desde 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é sucede 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 el 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 posee en el archivo actual. directorio:

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

Eche un vistazo a otro ejemplo donde empleamos expresiones awk, aquí, queremos imprimir archivos propiedad del usuario root usando 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 (u003du003d) para ayudarnos a filtrar los archivos en el directorio actual que son propiedad del usuario root. Esto se logra usando la expresión $3 u003du003d ”root” .

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

Aquí, hemos usado la utilidad cat para ver el contenido de un archivo llamado tecmint_deals.txt y queremos ver solo las ofertas de tipo Tech, por lo que ejecutaremos los 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 tecnología de patrón, no se imprime nada porque no hay un trato de ese tipo, pero con Tecnología, obtiene ofertas de tipo Tecnología.

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

Siempre puede usar la salida de otro comando como 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 hayan sido lo suficientemente claros para que los entienda, si tiene alguna inquietud, puede expresarla a través de la sección de comentarios a continuación y recuerde revisar la siguiente parte de la serie donde veremos características de awk como variables, expresiones numéricas y Operadores de Asignación.