Tengo un archivo de datos que quiero normalizar usando awk
, basado en el último punto de datos. Por lo tanto, me gustaría acceder primero al último punto de datos, para normalizar los datos y luego procesarlos normalmente.
El siguiente método, usando tac
dos veces, hace el trabajo, pero es quizás más complicado de lo necesario.
$ cat file
0 5
1 2
2 3
3 4
$ tac file | awk 'NR==1{norm=$2} {print $1, $2/norm}' | tac
0 1.25
1 0.5
2 0.75
3 1
Mi pregunta es la siguiente: ¿Es posible obtener el resultado anterior usando solo awk?
Creo que la respuesta es "No, awk escanea el archivo línea por línea", pero estoy abierto a sugerencias de alternativas.
$ awk --version GNU Awk 3.1.8
. ¿Puede agregar una explicación muy pequeña sobre cómo se manejan dos archivos de entrada y quénext
hace?