Mam plik danych, który chcę znormalizować awk
na podstawie ostatniego punktu danych. Dlatego najpierw chciałbym uzyskać dostęp do ostatniego punktu danych, aby znormalizować dane, a następnie przetwarzać normalnie.
Poniższa metoda, wykorzystująca tac
dwa razy, spełnia swoje zadanie, ale może jest bardziej skomplikowana niż to konieczne.
$ 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
Moje pytanie brzmi: czy można uzyskać powyższy wynik, używając tylko awk?
Myślę, że odpowiedź brzmi „Nie, awk skanuje plik linia po linii”, ale jestem otwarty na sugestie dotyczące alternatyw.
$ awk --version GNU Awk 3.1.8
. Czy możesz dodać bardzo małe wyjaśnienie, w jaki sposób obsługiwane są dwa pliki wejściowe i co tonext
robi?