คุณสามารถข้ามบันทึกแรก (บรรทัด) ได้โดยเพิ่ม a กฎ ไปที่บล็อก:
NR > 1 {
ถ้า(สูงสุด<($2)){
สูงสุด=$2;
max_breed=$1;
}
}
อย่างไรก็ตาม คุณควรพยายามทำความเข้าใจว่าทำไมคุณถึงได้รับผลลัพธ์ที่คุณทำเมื่อคุณ อย่า ยกเว้นบรรทัดแรก - นั่นเป็นเพราะ:
เมื่อไร NR==1
, คุณค่าของ สูงสุด
เป็น 0
(ตัวเลข - กำหนดใน เริ่ม
block)แต่ค่าของ $2
เป็น โหวต
(ซึ่งเป็นสตริง) ดังนั้นการแสดงออก สูงสุด<($2)
เปลี่ยนใจเลื่อมใส สูงสุด
เป็นสตริงและทำการเปรียบเทียบคำศัพท์ ถ้า 0
น้อยกว่า วี
ในภาษาของคุณ ผลลัพธ์จะเป็น TRUE และ สูงสุด
ได้รับมอบหมายให้ ค่าสตริง โหวต
สำหรับบรรทัดต่อมา $2
เป็นตัวเลขแต่ สูงสุด
ตอนนี้เป็นสตริงดังนั้น $2
ถูกแปลงเป็นสตริงและการเปรียบเทียบเป็นพจนานุกรมอีกครั้ง ทะลึ่ง วี
มีน้ำหนักศัพท์มากกว่าหลักใดๆ 0
ผ่าน 9
, วี
ชนะตลอด.
นอกจากนี้ shebang ของคุณดูไม่ถูกต้อง - น่าจะเป็น
#!/usr/bin/awk -f
หรือ
#!/bin/awk -f
ขึ้นอยู่กับเวอร์ชัน Ubuntu ของคุณ นอกจากนี้การมอบหมายงานเช่น max_breed=1 ดอลลาร์
ไม่มีความหมายจริงๆใน เริ่ม
บล็อกเนื่องจากมีการดำเนินการ ก่อน บันทึกใด ๆ ได้รับการประมวลผล