มีดังต่อไปนี้ในหนึ่งในฟังก์ชั่นเปลือกของฉัน:
function _process () {
awk -v l="$line" '
BEGIN {p=0}
/'"$1"'/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
}
ดังนั้นเมื่อเรียกว่าเป็น_process $arg, $argได้รับการส่งผ่านเป็น$1และนำมาใช้เป็นรูปแบบการค้นหา มันทำงานได้ด้วยวิธีนี้เพราะเชลล์ขยาย$1แทนรูปแบบ awk! นอกจากนี้ยังlสามารถนำมาใช้ภายในโปรแกรม awk -v l="$line"ถูกประกาศด้วย ทุกอย่างดี
เป็นไปได้หรือไม่ที่จะให้รูปแบบการค้นหาเป็นตัวแปร
การติดตามจะไม่ทำงาน
awk -v l="$line" -v search="$pattern" '
BEGIN {p=0}
/search/ {p=1}
END{ if(p) print l >> "outfile.txt" }
'
ในฐานะ awk จะไม่ตีความ/search/ว่าเป็นตัวแปร แต่เป็นตัวอักษรแทน