awk, mawk, nawk, gawk ... क्या?


38

मैंने अभी अभी सीखना शुरू किया है और मैं उन सभी संस्करणों के बारे में थोड़ा भ्रमित हूँ। क्या कोई "संस्करण" है जो सभी यूनिक्स जैसी प्रणालियों पर पाया जाता है? जैसे, तुम्हें पता है, सादे vi? क्या मानक जाग समर्थन -F विकल्प का समर्थन करता है?

जवाबों:


37

awk - सबसे आम और अधिकांश यूनिक्स जैसी प्रणालियों पर पाया जाएगा, सबसे पुराना संस्करण और नए लोगों के लिए अवर।

mawk - तेज AWK कार्यान्वयन जो यह कोड आधार है एक बाइट-कोड दुभाषिया पर आधारित है।

nawk - जबकि AWK भाषा विकसित की जा रही थी लेखकों ने भ्रम से बचने के लिए एक नया संस्करण (इसलिए n - n ew awk) जारी किया। इसे AWK के पायथन 3.0 की तरह समझें।

gawk - GNU awk से संक्षिप्त। एकमात्र संस्करण जिसमें डेवलपर्स ने i18n समर्थन जोड़ने का प्रयास किया। उपयोगकर्ताओं को अपने स्वयं के "प्लग-इन" का विस्तार करने के लिए अपने स्वयं के सी साझा पुस्तकालयों को लिखने की अनुमति दी। यह संस्करण लिनक्स के लिए मानक कार्यान्वयन है, मूल AWK को यूनिक्स v7 के लिए लिखा गया था।

अन्य संस्करण हैं जैसे कि jawk (java कार्यान्वयन), bwk (ब्रायन डब्ल्यू। कर्निघन का कार्यान्वयन) और इसी तरह।


3
मेरे द्वारा उपलब्ध किसी भी यूनिक्स जैसी प्रणाली पर मूल awk मौजूद नहीं है। अक्सर, /usr/bin/awknawk, या gawk, या BusyBox awk (व्यवहार में gawk के समान) को चलाएगा।
डब्यूजिम

10
2012 के अंत में, उबंटू / डेबियन सिस्टम डिफ़ॉल्ट रूप से mawk स्थापित करते हैं। कमांड लाइन file /etc/alternatives/awkलौटती हैsymbolic link to /usr/bin/mawk
माइक शेरिल 'कैट रिकॉल'

क्या MAWK में सभी GAWK फ़ंक्शंस हैं जैसे कि सच्ची बहुआयामी सरणियाँ?
WYSIWYG

2
@JordonBedwell Yep .. वहाँ हैं: regex पुनरावृत्तियां mawk में संभव नहीं हैं। यह बहुआयामी सरणियों का भी समर्थन नहीं करता है।
WYSIWYG

1
@dubiousjim उबंटू ब्रह्मांड भंडार में मूल-जाग है।
जर्नो

6

आप बस उपयोग कर सकते हैं awk। यह POSIX द्वारा परिभाषित किया गया है और इसलिए सभी POSIX-अनुरूप सिस्टम पर मौजूद है।

-Fपैरामीटर है कि द्वारा अनिवार्य रूप में अच्छी तरह।


1
... लेकिन यह ध्यान रखने के लिए कि आप दूसरे संस्करण के साथ अनुकूलता का बीमा करने के लिए क्या उपयोग कर सकते हैं, यह बताने के लिए मानक के साथ जांच करें। उदाहरण के लिए, का उपयोग करें gensub(), परीक्षण awk-> के साथ gawk, और लगता है कि आप जाने के लिए अच्छे हैं ...
dmckee

1
@ काम, आप gawk --posixPOSIX मानक के अनुसार gawk काम करने के लिए उपयोग कर सकते हैं । यह आपकी स्क्रिप्ट की जांच करता है जो मानक का अनुसरण करता है। आप awk --posix '' 2>/dev/nullउबंटू में उपयोग कर सकते हैं , कोई बात नहीं, अगर गॉक, मॉक या ऑरिजनल-ऑक का इस्तेमाल अको के रूप में किया जाता है, लेकिन पॉज़िक्स-ऑप्शन केवल गॉक् द्वारा पहचाना जाता है। - ऑपिक्सिक्स को मूल-जाग के लिए अंतिम विकल्प होना चाहिए। आप awk -W posix ''gawk और mawk के साथ उपयोग कर सकते हैं ।
जर्नो

1
@ मैककी, ओह mawk --posix ''विफल रहता है, यदि आप mawk 1.3.3 का उपयोग करते हैं, लेकिन त्रुटि संदेश के साथ सफल होता है, यदि आप
mawk

1

awkबस हर * NIX आधारित प्रणाली के बारे में होगा, लेकिन इसका समर्थन करने की सटीक बारीकियों में थोड़ा बदलाव आएगा क्योंकि यह पूरी तरह से संभव है कि यह एक अलग संस्करण के लिए सहानुभूति होगी जो /bin/shअक्सर एक विशिष्ट शेल से जुड़ा होता है, अक्सर bashया एक में से एक इसका व्युत्पन्न। (रिकॉर्ड के लिए, मुझे उन मशीनों का भी पता है, जहाँ पर viभी सहानुभूति है vim।)


हमेशा सहानुभूति रखने की जरूरत नहीं है; कभी-कभी यह कड़ी-कड़ी है।
डब्यूजिम

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.