คุณสามารถข้ามบันทึกแรก (บรรทัด) ได้โดยเพิ่ม 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 ดอลลาร์ ไม่มีความหมายจริงๆใน เริ่ม บล็อกเนื่องจากมีการดำเนินการ ก่อน บันทึกใด ๆ ได้รับการประมวลผล