Programas de “Una línea” útiles AWK

Programas de awk útiles son a menudo cortos, de una sola línea o dos. Aquí tienes una colección  de programas cortos y útiles para empezar. Algunos de estos programas contienen construcciones que no han sido explicadas todavía. La descripción del programa te dará una idea de qué es lo que hace, pero por favor lee el resto de las publicaciones para convertirte en un experto de awk.

awk '{ num_campos = num_campos + NF } 
END { print num_campos }'

Este programa imprime el número total de campos de todas las líneas de entrada.

awk 'length($0) > 80'

Este programa imprime todas las líneas que tengan más de 80 caracteres. La única regla tiene una expresión relacional como su patrón, y no tiene ninguna acción (así que la acción por defecto, imprimir el registro, es la que se usa)

awk 'NF > 0'

Este programa imprime todas las líneas que tienen al menos un campo. Esta es una forma fácil de eliminar líneas en blanco de un fichero (o en su lugar, crear un nuevo fichero similar al fichero anterior pero en el cual se han suprimido las líneas en blanco)

awk '{ if (NF > 0) print }'

Este programa también imprime todas las líneas que tienen al menos un campo. Aquí nosotros aplicamos la regla para buscar la línea y a continuación se decide en la acción donde imprimir.

awk 'BEGIN { for (i = 1; i <= 7; i++) print int(101 * rand()) }'

Este programa imprime 7 números aleatorios desde 0 a 100, ambos incluidos.

ls -l ficheros | awk '{ x += $4 } ; END { print "total bytes: " x }'

Este programa imprime el número total de bytes utilizados por ficheros.

expand file | awk '{ if (x < length()) x = length() } 
END { print "maximum line length is " x }'

Este programa imprime la máxima longitud de línea de fichero. El fichero de entrada que va a procesar awk es filtrado previamente con el comando expand que cambia los tabuladores por espacios en blanco, así que las longitudes comparadas son realmente las columnas del margen derecho.


Publicar un comentario

0 Comentarios