यह वास्तव में POSIX में है awk(POSIX 2008 के लिए लिंक, पिछले संस्करणों में यह भी मुझे विश्वास था)। विकल्प अनुभाग -vमें वर्णित है , दूसरा तरीका ऑपरेंड्स अनुभाग में है।
-vफ़ाइल नामों के साथ अंत में असाइनमेंट पास करने और पास करने में अंतर है :
आवेदन यह सुनिश्चित करेगा कि असाइनमेंट तर्क एक असाइनमेंट ऑपरेंड के रूप में उसी रूप में है। निर्दिष्ट चर असाइनमेंट BEGIN पैटर्न (यदि कोई हो) से जुड़े कार्यों सहित, awk प्रोग्राम को निष्पादित करने से पहले होगा । इस विकल्प की कई घटनाओं को निर्दिष्ट किया जा सकता है।
- फ़ाइल नामों के साथ मिश्रित:
[...] इस तरह के प्रत्येक चर असाइनमेंट निम्न फ़ाइल के प्रसंस्करण से पहले होगा , यदि कोई हो। इस प्रकार, 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