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
del manual 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.
Manual |