Saya memiliki file data yang ingin dinormalisasi menggunakan awk
, berdasarkan datapoint terakhir. Untuk itu, saya ingin mengakses titik data terakhir terlebih dahulu, untuk menormalkan data, kemudian memproses secara normal.
Metode berikut, menggunakan tac
dua kali, melakukan pekerjaan, tetapi, mungkin lebih rumit daripada yang diperlukan.
$ 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
Pertanyaan saya adalah sebagai berikut: Apakah mungkin mendapatkan hasil di atas dengan menggunakan awk saja?
Saya pikir jawabannya adalah "Tidak, awk memindai file baris demi baris", tetapi saya terbuka untuk saran untuk alternatif.
$ awk --version GNU Awk 3.1.8
. Bisakah Anda menambahkan penjelasan yang sangat kecil tentang bagaimana dua file input ditangani dan apanext
fungsinya?