Búsqueda de sitios web

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


En las partes anteriores de la serie de herramientas Awk, analizamos la lectura de entradas principalmente de archivos, pero ¿qué sucede si desea leer entradas 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 archivos propiedad del usuario root usando una expresión para filtrar cadenas como en el siguiente comando awk:

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 $3== ”root ”.

Veamos otro ejemplo en el que utilizamos 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 de tipo Tech únicamente, por lo que ejecutaremos la 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 resaltar algo muy importante.

Cuando ejecutas el comando con el patrón tech no se imprime nada porque no hay una oferta de ese tipo, pero con Tech obtienes ofertas de escriba Técnico.

Por lo tanto, tenga siempre cuidado al utilizar este operador de comparación, distingue entre mayúsculas y minúsculas, como hemos visto anteriormente.

Siempre puedes 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 entiendas. Si tienes alguna inquietud, puedes expresarla a través de la sección de comentarios a continuación y recuerda consultar la siguiente parte de la serie donde veremos las características de awk. como variables, expresiones numéricas y operadores de asignación.