เป็นจริงใน POSIX awk
(ลิงก์ไปยัง POSIX 2008 เวอร์ชันก่อนหน้ามีเหมือนกันฉันเชื่อ) -v
อธิบายไว้ในส่วนตัวเลือกวิธีอื่น ๆ ในส่วนของตัวถูกดำเนินการ
มีความแตกต่างระหว่าง-v
และผ่านการมอบหมายในตอนท้ายด้วยชื่อไฟล์:
แอปพลิเคชันจะต้องทำให้แน่ใจว่าอาร์กิวเมนต์การมอบหมายนั้นอยู่ในรูปแบบเดียวกับตัวถูกดำเนินการที่ได้รับมอบหมาย การกำหนดตัวแปรที่ระบุจะเกิดขึ้นก่อนที่จะดำเนินการโปรแกรม awk รวมถึงการกระทำที่เกี่ยวข้องกับรูปแบบ BEGIN (ถ้ามี) สามารถระบุได้หลายครั้งของตัวเลือกนี้
[... ] การกำหนดตัวแปรแต่ละตัวนั้นจะเกิดขึ้นก่อนการประมวลผลของไฟล์ต่อไปนี้ถ้ามี ดังนั้นการกำหนดค่าก่อนอาร์กิวเมนต์ไฟล์แรกจะถูกดำเนินการหลังจากการกระทำ BEGIN (ถ้ามี) ในขณะที่การกำหนดค่าหลังจากอาร์กิวเมนต์ไฟล์สุดท้ายจะเกิดขึ้นก่อนการดำเนินการ END (ถ้ามี) หากไม่มีข้อโต้แย้งไฟล์จะต้องดำเนินการกำหนดค่าก่อนประมวลผลอินพุตมาตรฐาน
ตัวอย่าง:
$ cat input
hello
hello
$ awk -v var=one 'BEGIN{print var} /hello/{print var} END{print var}' \
var=two input var=three input var=four
one
two
two
three
three
four