J'ai un fichier de données que je souhaite normaliser à l'aide awk
du dernier point de données. Pour cela, je voudrais d'abord accéder au dernier point de données, normaliser les données, puis traiter normalement.
La méthode suivante, utilisant tac
deux fois, fait le travail, mais est peut-être plus compliquée que nécessaire.
$ 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
Ma question est la suivante: est-il possible d'obtenir le résultat ci-dessus en utilisant uniquement awk?
Je pense que la réponse est "Non, awk scanne le fichier ligne par ligne", mais je suis ouvert aux suggestions d'alternatives.
$ awk --version GNU Awk 3.1.8
. Pouvez-vous peut-être ajouter une très petite explication sur la façon dont deux fichiers d'entrée sont traités et quenext
fait-on?