ฉันมีไฟล์ข้อมูลที่ฉันต้องการทำให้เป็นมาตรฐานโดยใช้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
บ้าง