{
if ($1 > max) max = $1
arr[$1] = $0
}
END {
for (x = 1; x <= max; x++) print arr[x]
}
La primera regla guarda el número de línea más alto leído hasta el momento; también guarda cada línea en el array arr, en un índice que es el número de línea.
La segunda regla se ejecuta después de que se hayan leído toda la entrada, para imprimir todas las líneas.
Cuando este programa se ejecuta con la siguiente entrada:
- 5 I am the Five man
- 2 Who are you? The new number two!
- 4 . . . And four on the floor
- 1 Who is number one?
- 3 I three you.
su salida es la siguiente:
- 1 Who is number one?
- 2 Who are you? The new number two!
- 3 I three you.
- 4 . . . And four on the floor
- 5 I am the Five man
Si se repite un número de línea, la última línea con dicho número repetido es la que permanece. Los huecos en números de línea pueden ser manejados con una fácil mejora a la regla END del programa:
END {
for (x = 1; x <= max; x++) if (x in arr)
print arr[x]
}
0 Comentarios