नाम
गॉक - पैटर्न स्कैनिंग और प्रसंस्करण भाषा
सार
मूर्ख POSIX या जीएनयू शैली विकल्प -f प्रोग्राम फाइल -- फाइल …मूर्ख POSIX या जीएनयू शैली विकल्प -- कार्यक्रम-पाठ फाइल … pgawk POSIX या जीएनयू शैली विकल्प -f प्रोग्राम फाइल -- फाइल …pgawk POSIX या जीएनयू शैली विकल्प -- कार्यक्रम-पाठ फाइल … मूर्ख एडब्ल्यूके प्रोग्रामिंग भाषा का जीएनयू प्रोजेक्ट का कार्यान्वयन है। यह POSIX 1003.2 कमांड भाषा और उपयोगिता मानक में भाषा की परिभाषा के अनुरूप है। बदले में यह संस्करण विवरण पर आधारित है एडब्ल्यूके प्रोग्रामिंग भाषा , एनो, कर्निघान और वेनबर्गर द्वारा, यूनिक्स के सिस्टम वी रिलीज 4 संस्करण में मिली अतिरिक्त सुविधाओं के साथ awk . मूर्ख हाल ही में बेल प्रयोगशालाएं भी प्रदान करता है awk एक्सटेंशन, और कई जीएनयू-विशिष्ट एक्सटेंशन। Pgawk का प्रोफाइलिंग संस्करण है मूर्ख । यह हर तरह से समान है मूर्ख , सिवाय इसके कि प्रोग्राम अधिक धीरे-धीरे चलते हैं, और यह स्वचालित रूप से फ़ाइल में निष्पादन प्रोफ़ाइल उत्पन्न करता है awkprof.out जब हो जाए। देखें --profile विकल्प, नीचे। कमांड लाइन में विकल्पों के होते हैं मूर्ख स्वयं, एडब्ल्यूके प्रोग्राम टेक्स्ट (यदि के माध्यम से आपूर्ति नहीं की जाती है -f या --file विकल्प), और मूल्यों में उपलब्ध कराया जाना चाहिए argc तथा ARGV पूर्व परिभाषित एडब्ल्यूके चर। मूर्ख विकल्प या तो पारंपरिक POSIX एक अक्षर विकल्प, या जीएनयू शैली लंबे विकल्प हो सकते हैं। POSIX विकल्प एकल `` - 'से शुरू होते हैं, जबकि लंबे विकल्प `` -' से शुरू होते हैं। जीएनयू-विशिष्ट विशेषताओं और पॉज़िक्स-अनिवार्य सुविधाओं दोनों के लिए लंबे विकल्प प्रदान किए जाते हैं। POSIX मानक के बाद, मूर्ख विशिष्ट विकल्पों को तर्क के माध्यम से आपूर्ति की जाती है डब्ल्यू विकल्प। विभिन्न डब्ल्यू विकल्पों को प्रत्येक आपूर्ति की जा सकती है डब्ल्यू विकल्प के अनुसार एक विस्तृत लंबा विकल्प है, जैसा कि नीचे दिया गया है। लंबे विकल्पों के लिए तर्क या तो विकल्प के साथ शामिल हो गए हैं = साइन इन करें, बिना हस्तक्षेप वाले रिक्त स्थान के, या उन्हें अगली कमांड लाइन तर्क में प्रदान किया जा सकता है। लंबे विकल्प को संक्षेप में संक्षिप्त किया जा सकता है, जब तक संक्षेप अद्वितीय रहता है। मूर्ख वर्णानुक्रम में सूचीबद्ध निम्नलिखित विकल्पों को स्वीकार करता है। एफ FS --field-विभाजक FS उपयोग FS इनपुट फ़ील्ड विभाजक के लिए (का मूल्य एफएस पूर्वनिर्धारित चर)। -v वर = वैल --assign वर = वैल मान असाइन करें वैल परिवर्तनीय करने के लिए वर , कार्यक्रम के निष्पादन से पहले शुरू होता है। इस तरह के चर मूल्यों के लिए उपलब्ध हैं शुरू एक एडब्ल्यूके कार्यक्रम का ब्लॉक। -f प्रोग्राम फाइल --file प्रोग्राम फाइल फ़ाइल से एडब्ल्यूके प्रोग्राम स्रोत पढ़ें प्रोग्राम फाइल , पहले कमांड लाइन तर्क के बजाय। विभिन्न -f (या --file) विकल्प का उपयोग किया जा सकता है। -mf NNN -श्री NNN मूल्य पर विभिन्न मेमोरी सीमाएं सेट करें NNN । च ध्वज फ़ील्ड की अधिकतम संख्या सेट करता है, और आर ध्वज अधिकतम रिकॉर्ड आकार सेट करता है। ये दो झंडे और -m विकल्प यूनिक्स के बेल प्रयोगशालाओं अनुसंधान संस्करण से हैं awk । उन्हें अनदेखा किया जाता है मूर्ख , जबसे मूर्ख कोई पूर्व परिभाषित सीमा नहीं है। -W compat -W पारंपरिक --compat --traditional झगड़ा अनुकूलता मोड। संगतता मोड में, मूर्ख यूनिक्स के समान व्यवहार करता है awk ; जीएनयू-विशिष्ट एक्सटेंशन में से कोई भी मान्यता प्राप्त नहीं है। का उपयोग --traditional इस विकल्प के अन्य रूपों पर पसंद किया जाता है। देख जीएनयू एक्सटेंशनअधिक जानकारी के लिए, नीचे, नीचे। -W कॉपी बाएं -W कॉपीराइट --copyleft --copyright मानक आउटपुट पर जीएनयू कॉपीराइट सूचना संदेश का संक्षिप्त संस्करण प्रिंट करें और सफलतापूर्वक बाहर निकलें। -W डंप-चर= फ़ाइल --dump-चर= फ़ाइल वैश्विक चर, उनके प्रकार और अंतिम मानों की एक क्रमबद्ध सूची मुद्रित करें फ़ाइल । यदि नही फ़ाइल उपलब्ध है, मूर्ख नाम की एक फ़ाइल का उपयोग करता है awkvars.out वर्तमान निर्देशिका में। सभी वैश्विक चरों की सूची रखना आपके कार्यक्रमों में टाइपोग्राफ़िकल त्रुटियों को देखने का एक अच्छा तरीका है। यदि आप बहुत सारे कार्यों के साथ एक बड़ा कार्यक्रम रखते हैं, तो आप इस विकल्प का भी उपयोग करेंगे, और आप यह सुनिश्चित करना चाहते हैं कि आपके फ़ंक्शन अनजाने में वैश्विक चर का उपयोग न करें जो आप स्थानीय होने के लिए करते हैं। (यह सरल चर नामों के साथ बनाने के लिए एक विशेष रूप से आसान गलती है मैं, j, और इसी तरह।) -W मदद -W उपयोग --मदद --usage मानक आउटपुट पर उपलब्ध विकल्पों का अपेक्षाकृत संक्षिप्त सारांश प्रिंट करें। (प्रति जीएनयू कोडिंग मानकों , ये विकल्प तत्काल, सफल निकास का कारण बनते हैं।) -W लिंट= घातक --lint= घातक उन संरचनाओं के बारे में चेतावनियां प्रदान करें जो अन्य एडब्ल्यूके कार्यान्वयन के लिए संदिग्ध या गैर-पोर्टेबल हैं। के वैकल्पिक तर्क के साथ घातक, लिंट चेतावनियां घातक त्रुटियां बन जाती हैं। यह कठोर हो सकता है, लेकिन इसका उपयोग निश्चित रूप से क्लीनर एडब्ल्यूके कार्यक्रमों के विकास को प्रोत्साहित करेगा। -W लिंट-पुरानी --lint की उम्र यूनिक्स के मूल संस्करण के लिए पोर्टेबल नहीं हैं जो संरचनाओं के बारे में चेतावनियां प्रदान करें awk . -W जेन-पीओ --gen-पो एडब्ल्यूके कार्यक्रम स्कैन और पार्स करें, और एक जीएनयू उत्पन्न करें पुलिस कार्यक्रम में सभी स्थानीयकरण तारों के लिए प्रविष्टियों के साथ मानक आउटपुट पर प्रारूप फ़ाइल। कार्यक्रम स्वयं निष्पादित नहीं किया गया है। जीएनयू देखें gettext अधिक जानकारी के लिए वितरण पुलिस फ़ाइलें। -W गैर-दशमलव डेटा --गैर दशमलव-डेटा इनपुट डेटा में ऑक्टल और हेक्साडेसिमल मानों को पहचानें। महान सावधानी के साथ इस विकल्प का प्रयोग करें! -W posix --posix यह चालू है अनुकूलता निम्नलिखित अतिरिक्त प्रतिबंधों के साथ मोड: * एक्स बचने के अनुक्रम पहचान नहीं हैं। * फ़ील्ड विभाजक के रूप में केवल स्थान और टैब कार्य करें एफएस एक ही स्थान पर सेट है, न्यूलाइन नहीं है। * आप लाइनों को जारी नहीं रख सकते हैं ? तथा :. * समानार्थी समारोह कीवर्ड के लिए समारोह पहचाना नहीं गया है * ऑपरेटर ** तथा **= जगह में इस्तेमाल नहीं किया जा सकता है ^ तथा ^=. * fflush () समारोह उपलब्ध नहीं है। -W प्रोफाइल= prof_file --profile= prof_file प्रोफाइल प्रोफाइल भेजें prof_file । डिफ़ॉल्ट है awkprof.out। जब के साथ भागो मूर्ख , प्रोफाइल सिर्फ कार्यक्रम का एक '`सुंदर मुद्रित' संस्करण है। जब के साथ भागो pgawk , प्रोफाइल में बाएं मार्जिन में प्रोग्राम में प्रत्येक कथन की निष्पादन संख्या और प्रत्येक उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन के लिए फ़ंक्शन कॉल गणना होती है। -W पुनः अंतराल --re अंतराल के उपयोग को सक्षम करें अंतराल अभिव्यक्तियाँ नियमित अभिव्यक्ति मिलान में (देखें नियमित अभिव्यक्ति, नीचे)। अंतराल अभिव्यक्ति पारंपरिक रूप से एडब्ल्यूके भाषा में उपलब्ध नहीं थीं। POSIX मानक बनाने के लिए, उन्हें जोड़ा awk तथा egrep एक दूसरे के साथ संगत। हालांकि, उनके उपयोग पुराने एडब्ल्यूके कार्यक्रम तोड़ने की संभावना है, इसलिए मूर्ख केवल उन्हें प्रदान करता है अगर उन्हें इस विकल्प के साथ अनुरोध किया जाता है, या कब --posix अधिकृत है। -W स्रोत कार्यक्रम-पाठ --source कार्यक्रम-पाठ उपयोग कार्यक्रम-पाठ एडब्ल्यूके प्रोग्राम स्रोत कोड के रूप में। यह विकल्प लाइब्रेरी फ़ंक्शंस के आसान इंटरमीक्सिंग की अनुमति देता है (के माध्यम से उपयोग किया जाता है -f तथा --file विकल्प) कमांड लाइन पर दर्ज स्रोत कोड के साथ। यह मुख्य रूप से शैल स्क्रिप्ट में उपयोग किए जाने वाले मध्यम से बड़े एडब्ल्यूके कार्यक्रमों के लिए है। -W संस्करण --version इस विशेष प्रति के लिए संस्करण संस्करण प्रिंट करें मूर्ख मानक आउटपुट पर। यह मुख्य रूप से जानने के लिए उपयोगी है कि वर्तमान की प्रतिलिपि है या नहीं मूर्ख फ्री सिस्टम फाउंडेशन जो कुछ भी वितरित कर रहा है उसके संबंध में आपके सिस्टम पर अद्यतित है। बग की रिपोर्ट करते समय यह भी उपयोगी होता है। (प्रति जीएनयू कोडिंग मानकों , ये विकल्प तत्काल, सफल निकास का कारण बनते हैं।) -- विकल्पों के अंत को सिग्नल करें। यह एडब्ल्यूके कार्यक्रम के लिए आगे के तर्कों को '`-' 'से शुरू करने के लिए और तर्क देने के लिए उपयोगी है। यह मुख्य रूप से अधिकांश अन्य POSIX प्रोग्रामों द्वारा उपयोग किए जाने वाले तर्क पार्सिंग सम्मेलन के साथ स्थिरता के लिए है। संगतता मोड में, किसी भी अन्य विकल्प को अमान्य के रूप में चिह्नित किया जाता है, लेकिन अन्यथा अनदेखा किया जाता है। सामान्य ऑपरेशन में, जब तक प्रोग्राम टेक्स्ट की आपूर्ति की जाती है, तब तक अज्ञात विकल्प एडब्ल्यूके कार्यक्रम में पास किए जाते हैं ARGV प्रसंस्करण के लिए सरणी। यह विशेष रूप से '#!' 'निष्पादन योग्य दुभाषिया तंत्र के माध्यम से एडब्ल्यूके कार्यक्रम चलाने के लिए उपयोगी है। एडब्ल्यूके कार्यक्रम निष्पादन एक एडब्ल्यूके कार्यक्रम में पैटर्न-क्रिया विवरण और वैकल्पिक फ़ंक्शन परिभाषाओं का अनुक्रम होता है। पैटर्न { कार्रवाई कथन }समारोह नाम ( पैरामीटर सूची ) { बयान }
मूर्ख पहले से प्रोग्राम स्रोत पढ़ता है प्रोग्राम फाइल (एस) अगर निर्दिष्ट, तर्क से --source, या कमांड लाइन पर पहले गैर-विकल्प तर्क से। -f तथा --source विकल्प कमांड लाइन पर कई बार इस्तेमाल किया जा सकता है। मूर्ख कार्यक्रम पाठ को सभी के रूप में पढ़ता है प्रोग्राम फाइल एस और कमांड लाइन स्रोत ग्रंथों को एकसाथ संयोजित किया गया था। यह एडब्ल्यूके कार्यों के पुस्तकालयों के निर्माण के लिए उपयोगी है, इन्हें उपयोग करने वाले प्रत्येक नए एडब्ल्यूके प्रोग्राम में उन्हें शामिल किए बिना। यह कमांड लाइन प्रोग्राम के साथ पुस्तकालय कार्यों को मिश्रण करने की क्षमता भी प्रदान करता है। पर्यावरण परिवर्तनीय AWKPATH नाम वाली स्रोत फ़ाइलों को ढूंढते समय उपयोग करने के लिए एक खोज पथ निर्दिष्ट करता है -f विकल्प। यदि यह चर मौजूद नहीं है, तो डिफ़ॉल्ट पथ है":। / Usr / स्थानीय / शेयर / awk"। (कैसे वास्तविक निर्देशिका भिन्न हो सकती है, इस पर निर्भर करता है मूर्ख बनाया गया था और स्थापित किया गया था।) यदि फ़ाइल नाम दिया गया है -f विकल्प में `` / '' वर्ण होता है, कोई पथ खोज नहीं होती है। मूर्ख निम्नलिखित क्रम में एडब्ल्यूके कार्यक्रम निष्पादित करता है। सबसे पहले, सभी परिवर्तनीय असाइनमेंट के माध्यम से निर्दिष्ट -v विकल्प किया जाता है। आगामी, मूर्ख कार्यक्रम को एक आंतरिक रूप में संकलित करता है। फिर, मूर्ख कोड को निष्पादित करता है शुरू ब्लॉक (ओं) (यदि कोई है), और उसके बाद नामित प्रत्येक फ़ाइल को पढ़ने के लिए आगे बढ़ता है ARGV सरणी। अगर कमांड लाइन पर नाम की कोई फाइल नहीं है, मूर्ख मानक इनपुट पढ़ता है। यदि कमांड लाइन पर एक फ़ाइल नाम है तो फॉर्म है वर = वैल इसे एक चर असाइनमेंट के रूप में माना जाता है। चर वर मूल्य आवंटित किया जाएगा वैल । (यह किसी के बाद होता है शुरू ब्लॉक (ओं) चलाए गए हैं।) कमांड लाइन वेरिएबल असाइनमेंट वेरिएबल को मानों को गतिशील रूप से असाइन करने के लिए सबसे उपयोगी है AWK फ़ील्ड और रिकॉर्ड्स में इनपुट कैसे टूटा हुआ है, यह नियंत्रित करने के लिए उपयोग करता है। यह एक डेटा डेटा पर एकाधिक पास की आवश्यकता होने पर राज्य को नियंत्रित करने के लिए भी उपयोगी है। यदि किसी विशेष तत्व का मूल्य ARGV खाली है (''), मूर्ख उस पर छोड़ देता है। इनपुट में प्रत्येक रिकॉर्ड के लिए, मूर्ख यह देखने के लिए परीक्षण करता है कि यह किसी से मेल खाता है या नहीं पैटर्न एडब्ल्यूके कार्यक्रम में। प्रत्येक पैटर्न के लिए जो रिकॉर्ड मैचों, संबंधित है कार्य निष्पादित किया जाता है। पैटर्न में प्रोग्राम के क्रम में परीक्षण किए जाते हैं। अंत में, सभी इनपुट समाप्त हो जाने के बाद, मूर्ख कोड को निष्पादित करता है समाप्त ब्लॉक (ओं) (यदि कोई है)। एडब्ल्यूके चर गतिशील हैं; जब वे पहले इस्तेमाल होते हैं तो वे अस्तित्व में आते हैं। उनके मूल्य या तो फ़्लोटिंग-पॉइंट नंबर या स्ट्रिंग्स या दोनों हैं, इस पर निर्भर करते हैं कि उनका उपयोग कैसे किया जाता है। एडब्ल्यूके में एक आयामी सरणी भी होती है; एकाधिक आयाम वाले सरणी अनुकरण किए जा सकते हैं। कई प्री-डिफ़ाइंड वेरिएबल्स प्रोग्राम रन के रूप में सेट होते हैं; इन्हें आवश्यक और संक्षेप में वर्णित किया जाएगा। आम तौर पर, रिकॉर्ड न्यूलाइन अक्षरों से अलग होते हैं। आप नियंत्रित कर सकते हैं कि बिल्ट-इन वैरिएबल को मान निर्दिष्ट करके रिकॉर्ड कैसे अलग किए जाते हैं रुपये। अगर रुपये कोई भी चरित्र है, वह चरित्र रिकॉर्ड को अलग करता है। अन्यथा, रुपये एक नियमित अभिव्यक्ति है। इस नियमित अभिव्यक्ति से मेल खाने वाले इनपुट में टेक्स्ट रिकॉर्ड को अलग करता है। हालांकि, संगतता मोड में, केवल अपने स्ट्रिंग मान का पहला अक्षर रिकॉर्ड को अलग करने के लिए उपयोग किया जाता है। अगर रुपये शून्य स्ट्रिंग पर सेट है, तो रिकॉर्ड्स रिक्त लाइनों से अलग होते हैं। कब रुपये शून्य स्ट्रिंग पर सेट है, न्यूलाइन कैरेक्टर हमेशा किसी भी मूल्य के अलावा फील्ड सेपरेटर के रूप में कार्य करता है एफएस हो सकता है। चूंकि प्रत्येक इनपुट रिकॉर्ड पढ़ा जाता है, मूर्ख रिकॉर्ड में विभाजित है खेत , के मूल्य का उपयोग कर एफएस क्षेत्र विभाजक के रूप में चर। अगर एफएस एक एकल चरित्र है, फ़ील्ड उस चरित्र से अलग होते हैं। अगर एफएस शून्य स्ट्रिंग है, तो प्रत्येक व्यक्तिगत चरित्र एक अलग क्षेत्र बन जाता है। अन्यथा, एफएस एक पूर्ण नियमित अभिव्यक्ति होने की उम्मीद है। विशेष मामले में एफएस एक ही स्थान है, फ़ील्ड रिक्त स्थान और / या टैब और / या न्यूलाइन के रनों से अलग होते हैं। (लेकिन चर्चा की देखें --posix, नीचे)। ध्यान दें: का मूल्य मामले की अनदेखी करें (नीचे देखें) यह भी प्रभावित करता है कि फ़ील्ड कैसे विभाजित होते हैं एफएस एक नियमित अभिव्यक्ति है, और रिकॉर्ड कैसे अलग किए जाते हैं रुपये एक नियमित अभिव्यक्ति है। अगर FIELDWIDTHS परिवर्तनीय संख्याओं की एक स्पेस से अलग सूची में सेट है, प्रत्येक फ़ील्ड की निश्चित चौड़ाई होने की उम्मीद है, और मूर्ख निर्दिष्ट चौड़ाई का उपयोग कर रिकॉर्ड को विभाजित करता है। का मूल्य एफएस अनदेखा किया जाता है। एक नया मान असाइन करना एफएस के उपयोग को ओवरराइड करता है FIELDWIDTHS, और डिफ़ॉल्ट व्यवहार बहाल करता है। इनपुट रिकॉर्ड में प्रत्येक फ़ील्ड को इसकी स्थिति से संदर्भित किया जा सकता है, $1, $2, और इसी तरह। $0 पूरा रिकॉर्ड है। क्षेत्रों को स्थिरांक द्वारा संदर्भित करने की आवश्यकता नहीं है: एन = 5प्रिंट $ एन इनपुट रिकॉर्ड में पांचवें क्षेत्र को प्रिंट करता है। चर एनएफ इनपुट रिकॉर्ड में फ़ील्ड की कुल संख्या पर सेट है। अस्तित्वहीन क्षेत्रों के संदर्भ (यानी फ़ील्ड के बाद $ एनएफ) नल-स्ट्रिंग का उत्पादन करें। हालांकि, एक अस्तित्वहीन क्षेत्र को असाइन करना (उदा। $ (एनएफ + 2) = 5) का मूल्य बढ़ता है एनएफ, नल स्ट्रिंग के साथ किसी भी हस्तक्षेप वाले फ़ील्ड को उनके मान के रूप में बनाता है, और इसका कारण बनता है $0 खेतों के साथ अलग किया जा रहा है, खेतों के साथ अलग किया जा रहा है ओएफएस। नकारात्मक क्रमांकित फ़ील्ड के संदर्भ एक घातक त्रुटि का कारण बनते हैं। decrementing एनएफ नए मूल्य को खोने वाले फ़ील्ड के मूल्यों का कारण बनता है, और इसका मूल्य $0 खेतों के साथ अलग किया जा रहा है, खेतों के साथ अलग किया जा रहा है ओएफएस. किसी मौजूदा फ़ील्ड में मान असाइन करने से पूरे रिकॉर्ड को पुनर्निर्मित किया जा सकता है $0 संदर्भित है इसी प्रकार, एक मान असाइन करना $0 रिकॉर्ड को पुन: लागू करने का कारण बनता है, जो फ़ील्ड के लिए नए मूल्य बनाते हैं। मूर्ख अंतर्निर्मित चर हैं: argc कमांड लाइन तर्कों की संख्या (इसमें विकल्प शामिल नहीं हैं मूर्ख , या कार्यक्रम स्रोत)। ARGIND सूचकांक में ARGV संसाधित की जा रही मौजूदा फाइल का। ARGV कमांड लाइन तर्क के ऐरे। सरणी को 0 से अनुक्रमित किया गया है argc - 1. गतिशील रूप से सामग्री बदल रहा है ARGV डेटा के लिए इस्तेमाल की गई फ़ाइलों को नियंत्रित कर सकते हैं। BINMODE गैर-पॉज़िक्स सिस्टम पर, सभी फ़ाइल I / O के लिए 'बाइनरी' मोड का उपयोग निर्दिष्ट करता है। 1, 2, या 3 के संख्यात्मक मान, निर्दिष्ट करें कि इनपुट फ़ाइलें, आउटपुट फ़ाइलें, या सभी फ़ाइलों को क्रमशः बाइनरी I / O का उपयोग करना चाहिए। स्ट्रिंग मान "आर", या "डब्ल्यू" इनपुट इनपुट, या आउटपुट फ़ाइलों को क्रमशः निर्दिष्ट करें, बाइनरी I / O का उपयोग करना चाहिए। स्ट्रिंग मान "Rw" या "Wr" निर्दिष्ट करें कि सभी फ़ाइलों को बाइनरी I / O का उपयोग करना चाहिए। किसी भी अन्य स्ट्रिंग मान के रूप में माना जाता है "Rw", लेकिन एक चेतावनी संदेश उत्पन्न करता है। CONVFMT संख्याओं के लिए रूपांतरण प्रारूप, "% .6g", डिफ़ॉल्ट रूप से। ENVIRON वर्तमान वातावरण के मान वाले एक सरणी। सरणी को पर्यावरण चर द्वारा अनुक्रमित किया जाता है, प्रत्येक तत्व उस चर का मान होता है (उदा।ENVIRON "घर" हो सकता है / घर / arnold)। इस सरणी को बदलने से कार्यक्रमों द्वारा देखे गए पर्यावरण को प्रभावित नहीं किया जाता है मूर्ख पुनर्निर्देशन या के माध्यम से spawns प्रणाली ()समारोह। errno यदि कोई सिस्टम त्रुटि या तो पुनर्निर्देशन करने के लिए होती है लाइन में आओ, के लिए एक पढ़ने के दौरान लाइन में आओ, या एक के दौरान बंद करे(), फिर errno त्रुटि का वर्णन करने वाली एक स्ट्रिंग होगी। मूल्य गैर-अंग्रेजी लोकेशंस में अनुवाद के अधीन है। FIELDWIDTHS फ़ील्डविड्थ की एक सफेद-स्पेस अलग सूची। सेट करते समय, मूर्ख के मूल्य का उपयोग करने के बजाय, निश्चित चौड़ाई के क्षेत्रों में इनपुट पार्स करता है एफएस क्षेत्र विभाजक के रूप में चर। फ़ाइल का नाम वर्तमान इनपुट फ़ाइल का नाम।यदि कमांड लाइन पर कोई फ़ाइल निर्दिष्ट नहीं है, तो इसका मान फ़ाइल का नाम `` - '' है। हालाँकि, फ़ाइल का नाम अंदर के भीतर अपरिभाषित है शुरू ब्लॉक (जब तक सेट नहीं है लाइन में आओ). एफ एन आर वर्तमान इनपुट फ़ाइल में इनपुट रिकॉर्ड संख्या। एफएस इनपुट फ़ील्ड विभाजक, डिफ़ॉल्ट रूप से एक स्थान। देख खेत, ऊपर। मामले की अनदेखी करें सभी नियमित अभिव्यक्तियों और स्ट्रिंग संचालन की केस-संवेदनशीलता को नियंत्रित करता है। अगर मामले की अनदेखी करें एक गैर-शून्य मान है, फिर स्ट्रिंग तुलना और पैटर्न में पैटर्न पैटर्न, फ़ील्ड विभाजन के साथ एफएस, अलग से रिकॉर्ड रिकॉर्ड करें रुपये, नियमित अभिव्यक्ति मिलान के साथ ~तथा !~, और यह gensub (), gsub (), इंडेक्स (), मैच (), विभाजित करें(), तथा उप () नियमित अभिव्यक्ति संचालन करते समय अंतर्निर्मित कार्य सभी मामले को अनदेखा करते हैं। ध्यान दें: ऐरे सबस्क्रिप्टिंग है नहीं प्रभावित, न ही है एक प्रकार() समारोह। इस प्रकार, अगर मामले की अनदेखी करें शून्य के बराबर नहीं है, / AB / सभी तारों से मेल खाता है "Ab", "Ab","अब", तथा "अटल बिहारी"। सभी एडब्ल्यूके चर के साथ, प्रारंभिक मूल्य मामले की अनदेखी करें शून्य है, इसलिए सभी नियमित अभिव्यक्ति और स्ट्रिंग ऑपरेशंस सामान्य रूप से केस-संवेदी होते हैं। यूनिक्स के तहत, केस को अनदेखा करते समय पूर्ण आईएसओ 885 9 -1 लैटिन -1 वर्ण सेट का उपयोग किया जाता है। एक प्रकार का वृक्ष गतिशील नियंत्रण प्रदान करता है --lint एक एडब्ल्यूके कार्यक्रम के भीतर से विकल्प। जब सच हो, मूर्ख मुद्रित लिंट चेतावनी। जब झूठा, यह नहीं करता है। स्ट्रिंग मान असाइन किए जाने पर "घातक", लिंट चेतावनी वास्तव में घातक त्रुटियों बन जाती है --lint = घातक। कोई अन्य सच्चा मूल्य सिर्फ चेतावनियों को प्रिंट करता है। एनएफ वर्तमान इनपुट रिकॉर्ड में फ़ील्ड की संख्या। एन.आर. अब तक देखे गए इनपुट रिकॉर्ड की कुल संख्या। OFMT संख्याओं के लिए आउटपुट प्रारूप, "% .6g", डिफ़ॉल्ट रूप से। ओएफएस आउटपुट फ़ील्ड सेपरेटर, डिफ़ॉल्ट रूप से एक स्पेस। ओआरएस आउटपुट रिकॉर्ड विभाजक, डिफ़ॉल्ट रूप से एक नई लाइन। PROCINFO इस सरणी के तत्व चल रहे एडब्ल्यूके प्रोग्राम के बारे में जानकारी तक पहुंच प्रदान करते हैं। कुछ प्रणालियों पर, सरणी में तत्व हो सकते हैं, "समूह 1" के माध्यम से "समूह n ' कुछ के लिए n , जो प्रक्रिया समूहों के पूरक समूह की संख्या है। उपयोग में इन तत्वों के लिए परीक्षण करने के लिए ऑपरेटर। निम्नलिखित तत्व उपलब्ध होने की गारंटी है: PROCINFO "egid" का मूल्य getegid (2) सिस्टम कॉल। PROCINFO "euid" का मूल्य geteuid (2) सिस्टम कॉल। PROCINFO "एफएस" "एफएस" यदि क्षेत्र के साथ विभाजित है एफएस प्रभाव में है, या "FIELDWIDTHS" यदि क्षेत्र के साथ विभाजित है FIELDWIDTHS प्रभाव में है। PROCINFO "gid" का मूल्य getgid (2) सिस्टम कॉल। PROCINFO "pgrpid" वर्तमान प्रक्रिया की प्रक्रिया समूह आईडी। PROCINFO "पीआईडी" वर्तमान प्रक्रिया की प्रक्रिया आईडी। PROCINFO "ppid" वर्तमान प्रक्रिया की मूल प्रक्रिया आईडी। PROCINFO "uid" का मूल्य getuid (2) सिस्टम कॉल। रुपये इनपुट रिकॉर्ड विभाजक, डिफ़ॉल्ट रूप से एक नई लाइन। आर टी रिकॉर्ड टर्मिनेटर। मूर्ख सेट आर टी इनपुट पाठ से जो वर्णित वर्ण या नियमित अभिव्यक्ति से मेल खाता है रुपये. RSTART द्वारा मिलान किए गए पहले चरित्र की अनुक्रमणिका मैच (); 0 अगर कोई मैच नहीं है। (इसका तात्पर्य है कि चरित्र सूचकांक एक से शुरू होता है।) RLENGTH द्वारा मिलान की गई स्ट्रिंग की लंबाई मैच (); -1 अगर कोई मैच नहीं है। SUBSEP चरित्र डिफ़ॉल्ट रूप से सरणी तत्वों में एकाधिक सबस्क्रिप्ट को अलग करने के लिए प्रयोग किया जाता है ' 034'. TEXTDOMAIN एडब्ल्यूके कार्यक्रम का टेक्स्ट डोमेन; प्रोग्राम के तारों के लिए स्थानीय अनुवादों को खोजने के लिए प्रयोग किया जाता था। Arrays वर्ग ब्रैकेट के बीच एक अभिव्यक्ति के साथ subscripted हैं ( तथा )। अगर अभिव्यक्ति एक अभिव्यक्ति सूची है ( expr , expr …) तो सरणी सबस्क्रिप्ट एक स्ट्रिंग है जिसमें प्रत्येक अभिव्यक्ति के (स्ट्रिंग) मान के संयोजन की समाप्ति होती है, जो कि के मूल्य से अलग होती है SUBSEP चर। इस सुविधा का उपयोग गुणा आयाम वाले सरणी अनुकरण करने के लिए किया जाता है। उदाहरण के लिए: मैं = "ए"; जे = "बी"; के = "सी"एक्स मैं, जे, के = "हैलो, दुनिया n" स्ट्रिंग असाइन करता है "हैलो, दुनिया n" सरणी के तत्व के लिए एक्स जो स्ट्रिंग द्वारा अनुक्रमित है"ए 034 बी 034 सी"। एडब्ल्यूके में सभी सरणी सहयोगी हैं, यानी स्ट्रिंग मानों द्वारा अनुक्रमित। विशेष ऑपरेटर में एक में इस्तेमाल किया जा सकता है अगर या जबकि यह देखने के लिए कथन कि किसी सरणी में एक विशेष मान वाला इंडेक्स है या नहीं। अगर (सरणी में वैल) प्रिंट सरणी वैल यदि सरणी में एकाधिक सबस्क्रिप्ट हैं, तो उपयोग करें (i, j) सरणी में. में निर्माण में भी इस्तेमाल किया जा सकता है के लिये सरणी के सभी तत्वों पर पुनरावृत्ति करने के लिए लूप। एक तत्व का उपयोग कर सरणी से हटाया जा सकता है हटाना बयान। हटाना कथन का उपयोग सरणी के बिना सरणी नाम निर्दिष्ट करके, किसी सरणी की संपूर्ण सामग्री को हटाने के लिए भी किया जा सकता है। चर और फ़ील्ड (फ़्लोटिंग पॉइंट) संख्याएं, या तार, या दोनों हो सकते हैं। एक चर का मूल्य व्याख्या कैसे किया जाता है इसके संदर्भ पर निर्भर करता है। यदि एक संख्यात्मक अभिव्यक्ति में उपयोग किया जाता है, तो इसे एक संख्या के रूप में माना जाएगा, यदि स्ट्रिंग के रूप में उपयोग किया जाता है तो इसे स्ट्रिंग के रूप में माना जाएगा। एक चर के रूप में इलाज करने के लिए एक चर को मजबूर करने के लिए, इसमें 0 जोड़ें; इसे एक स्ट्रिंग के रूप में माना जाने के लिए मजबूर करने के लिए, इसे नल स्ट्रिंग के साथ संयोजित करें। जब एक स्ट्रिंग को किसी संख्या में परिवर्तित किया जाना चाहिए, तो रूपांतरण का उपयोग करके पूरा किया जाता है strtod (3)। एक संख्या का उपयोग करके एक स्ट्रिंग में परिवर्तित किया जाता है CONVFMT के लिए एक प्रारूप स्ट्रिंग के रूप में sprintf (3), चर के रूप में परिवर्तनीय के संख्यात्मक मूल्य के साथ। हालांकि, भले ही एडब्ल्यूके में सभी संख्याएं फ्लोटिंग-पॉइंट हों, अभिन्न मूल्य हैं हमेशा पूर्णांक के रूप में परिवर्तित। इस प्रकार, दिया गया CONVFMT = "% 2.2f" a = 12 b = a "" परिवर्तनीय ख का एक स्ट्रिंग मान है '12' और नहीं '12.00'. मूर्ख निम्नानुसार तुलना करता है: यदि दो चर संख्यात्मक हैं, तो उनकी तुलनात्मक रूप से की जाती है। यदि एक मान संख्यात्मक है और दूसरे में एक स्ट्रिंग मान है जो `` संख्यात्मक स्ट्रिंग 'है, तो तुलनात्मक रूप से तुलनात्मक रूप से भी की जाती है। अन्यथा, संख्यात्मक मान एक स्ट्रिंग में परिवर्तित हो जाता है और एक स्ट्रिंग तुलना की जाती है। तारों के रूप में, दो तारों की तुलना की जाती है। ध्यान दें कि POSIX मानक स्ट्रिंग स्थिरांक तक भी, हर जगह `` संख्यात्मक स्ट्रिंग 'की अवधारणा को लागू करता है। हालांकि, यह स्पष्ट रूप से गलत है, और मूर्ख ऐसा नहीं करता (सौभाग्य से, यह मानक के अगले संस्करण में तय है।) ध्यान दें कि स्ट्रिंग स्थिरांक, जैसे कि '57', हैं नहीं संख्यात्मक तार, वे स्ट्रिंग स्थिरांक हैं। 'न्यूमेरिक स्ट्रिंग' का विचार केवल फ़ील्ड पर लागू होता है, लाइन में आओ इनपुट, फ़ाइल का नाम, ARGV तत्वों, ENVIRON तत्वों और द्वारा बनाई गई सरणी के तत्व विभाजित करें() वे संख्यात्मक तार हैं। मूल विचार यह है कि उपयोगकर्ता का निवेश , और केवल उपयोगकर्ता इनपुट, जो संख्यात्मक दिखता है, उस तरह से इलाज किया जाना चाहिए। अनियमित वैरिएबल में संख्यात्मक मान 0 और स्ट्रिंग मान "" (शून्य, या खाली, स्ट्रिंग) होता है। संस्करण 3.1 के साथ शुरू हो रहा है गॉक, आप अपने एडब्ल्यूके प्रोग्राम स्रोत कोड में सी-स्टाइल ऑक्टल और हेक्साडेसिमल स्थिरांक का उपयोग कर सकते हैं। उदाहरण के लिए, ऑक्टल मान 011 दशमलव के बराबर है 9, और हेक्साडेसिमल मान 0x11 दशमलव 17 के बराबर है। एडब्ल्यूके में स्ट्रिंग स्थिरांक डबल कोट्स के बीच संलग्न वर्णों के अनुक्रम हैं (')। तारों के भीतर, कुछ भागने के दृश्य सी में माना जाता है, ये हैं: \ एक शाब्दिक बैकस्लैश। ए `चेतावनी 'चरित्र; आमतौर पर ASCII बीईएल चरित्र। b बैकस्पेस। च फ़ीड बनाएं। n नई पंक्ति। r कैरिज रिटर्न। t क्षैतिज टैब। v लंबवत टैब एक्स हेक्स अंक चरित्र के बाद हेक्साडेसिमल अंकों की स्ट्रिंग द्वारा दर्शाया गया वर्ण एक्स। एएनएसआईसी में, निम्नलिखित सभी हेक्साडेसिमल अंकों को बचने के क्रम का हिस्सा माना जाता है। (इस सुविधा को हमें समिति द्वारा भाषा डिजाइन के बारे में कुछ बताना चाहिए।) उदा।, " X1B" ASCIIESC (भागने) चरित्र है। ddd वर्ण 1-, 2-, या 3 अंकों के अंडाकार
विवरण
विकल्प प्रारूप
विकल्प
चर, रिकॉर्ड्स, और फ़ील्ड
अभिलेख
खेत
अंतर्निर्मित चर
Arrays
परिवर्तनीय टाइपिंग और रूपांतरण
ऑक्टल और हेक्साडेसिमल कॉन्सटेंट्स
स्ट्रिंग Constants




