У мене є файл даних, який я хочу нормалізувати за допомогою awk
останньої точки даних. Для цього я хотів би спочатку отримати доступ до останньої точки даних, нормалізувати дані, а потім нормально обробити.
Наступний метод, використовуючи tac
двічі, виконує цю роботу, але, можливо, є складнішим, ніж необхідно.
$ 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
Моє запитання таке: чи можна отримати вищезазначений результат, використовуючи лише awk?
Я думаю, що відповідь - «Ні, awk сканує файл за рядком», але я відкритий для пропозицій щодо альтернатив.
$ awk --version GNU Awk 3.1.8
. Чи можете ви додати зовсім невелике пояснення того, як обробляються два вхідні файли та щоnext
це робиться?