गॉक - क्लाउड में ऑनलाइन

यह कमांड गॉक है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


गॉक - पैटर्न स्कैनिंग और प्रोसेसिंग भाषा

SYNOPSIS


मूर्ख [POSIX या GNU शैली विकल्प] -f कार्यक्रम फाइल [ -- ] फ़ाइल...
मूर्ख [ POSIX या GNU शैली विकल्प ] [ -- ] प्रोग्राम-पाठ फ़ाइल ...

वर्णन


मूर्ख यह GNU प्रोजेक्ट द्वारा AWK प्रोग्रामिंग भाषा का कार्यान्वयन है। यह अनुरूप है
POSIX 1003.1 मानक में भाषा की परिभाषा। बदले में यह संस्करण है
में वर्णन के आधार पर RSI AWK प्रोग्रामिंग भाषा, अहो, कर्निघन, और द्वारा
वेनबर्गर. मूर्ख ब्रायन के वर्तमान संस्करण में पाई जाने वाली अतिरिक्त सुविधाएँ प्रदान करता है
कर्निघन का awk और कई GNU-विशिष्ट एक्सटेंशन।

कमांड लाइन में विकल्प शामिल हैं मूर्ख स्वयं, AWK प्रोग्राम टेक्स्ट (यदि आपूर्ति नहीं की गई है
के माध्यम से -f or --फ़ाइल विकल्प), और मान उपलब्ध कराए जाएंगे एआरजीसी और एआरजीवी से पहले
परिभाषित AWK चर।

. मूर्ख के साथ लगाया जाता है --प्रोफाइल विकल्प, यह प्रोफाइलिंग आँकड़े एकत्र करना शुरू कर देता है
कार्यक्रम के निष्पादन से. मूर्ख इस मोड में अधिक धीमी गति से और स्वचालित रूप से चलता है
फ़ाइल में एक निष्पादन प्रोफ़ाइल तैयार करता है awkprof.out जब हो जाए। देखें --प्रोफाइल
विकल्प, नीचे।

मूर्ख इसमें एक एकीकृत डिबगर भी है। एक इंटरैक्टिव डिबगिंग सत्र किसके द्वारा प्रारंभ किया जा सकता है?
आपूर्ति कर रहा है - दाढ़ कमांड लाइन का विकल्प. निष्पादन की इस विधा में, मूर्ख भार
AWK स्रोत कोड और फिर डिबगिंग कमांड के लिए संकेत देता है। मूर्ख केवल AWK को डिबग कर सकता है
कार्यक्रम स्रोत के साथ प्रदान किया गया -f विकल्प। डिबगर को प्रलेखित किया गया है गॉक: प्रभावी
AWK प्रोग्रामिंग.

विकल्प FORMAT


मूर्ख विकल्प या तो पारंपरिक POSIX-शैली एक अक्षर विकल्प, या GNU-शैली लंबे हो सकते हैं
विकल्प. POSIX विकल्प एकल "-" से शुरू होते हैं, जबकि लंबे विकल्प "--" से शुरू होते हैं। लंबा
GNU-विशिष्ट सुविधाओं और POSIX-अनिवार्य सुविधाओं दोनों के लिए विकल्प प्रदान किए गए हैं।

मूर्ख-विशिष्ट विकल्प आमतौर पर लंबे विकल्प के रूप में उपयोग किए जाते हैं। लंबे विकल्पों के लिए तर्क
या तो विकल्प के साथ एक द्वारा जुड़े हुए हैं = चिह्न, बिना किसी हस्तक्षेप वाले स्थान के, या वे हो सकते हैं
अगले कमांड लाइन तर्क में प्रदान किया गया। लंबे विकल्पों को संक्षिप्त किया जा सकता है, जब तक
संक्षिप्तीकरण अद्वितीय रहता है.

इसके अतिरिक्त, प्रत्येक लंबे विकल्प में एक संगत छोटा विकल्प होता है, ताकि विकल्प का
कार्यक्षमता का उपयोग भीतर से किया जा सकता है #! निष्पादन योग्य स्क्रिप्ट.

विकल्प


मूर्ख निम्नलिखित विकल्पों को स्वीकार करता है. मानक विकल्प पहले सूचीबद्ध हैं, उसके बाद
के लिए विकल्प मूर्ख एक्सटेंशन, संक्षिप्त विकल्प द्वारा वर्णानुक्रम में सूचीबद्ध।

-f कार्यक्रम फाइल
--फ़ाइल कार्यक्रम फाइल
फ़ाइल से AWK प्रोग्राम स्रोत पढ़ें कार्यक्रम फाइल, पहले के बजाय
कमांड लाइन तर्क. विभिन्न -f (या --फ़ाइल) विकल्पों का उपयोग किया जा सकता है।

-F fs
--फ़ील्ड-विभाजक fs
उपयोग fs इनपुट फ़ील्ड विभाजक के लिए (का मान) FS पूर्वनिर्धारित चर)।

-v था=लहर
--सौंपना था=लहर
मान निर्दिष्ट करें लहर चर के लिए था, प्रोग्राम का निष्पादन शुरू होने से पहले।
ऐसे परिवर्तनीय मान उपलब्ध हैं शुरू AWK प्रोग्राम का नियम.

-b
--अक्षर-बाइट्स के रूप में
सभी इनपुट डेटा को सिंगल-बाइट वर्णों के रूप में मानें। दूसरे शब्दों में, कोई भुगतान न करें
स्ट्रिंग को मल्टीबाइट के रूप में संसाधित करने का प्रयास करते समय स्थानीय जानकारी पर ध्यान दें
पात्र। --posix विकल्प इसे ओवरराइड करता है।

-c
--परंपरागत
झगड़ा अनुकूलता तरीका। अनुकूलता मोड में, मूर्ख के समान व्यवहार करता है
ब्रायन कर्निघन का awk; GNU-विशिष्ट एक्सटेंशन में से कोई भी मान्यता प्राप्त नहीं है। देखना जीएनयू
एक्सटेंशन, अधिक जानकारी के लिए नीचे।

-C
--कॉपीराइट
मानक पर GNU कॉपीराइट सूचना संदेश का संक्षिप्त संस्करण प्रिंट करें
आउटपुट और निकास सफलतापूर्वक।

-d[पट्टिका]
--डंप-चर[=पट्टिका]
वैश्विक चर, उनके प्रकार और अंतिम मानों की क्रमबद्ध सूची प्रिंट करें पट्टिका. अगर
नहीं पट्टिका उपलब्ध है, मूर्ख नामक फ़ाइल का उपयोग करता है awkvars.out वर्तमान निर्देशिका में।
सभी वैश्विक चरों की एक सूची रखना मुद्रण संबंधी देखने का एक अच्छा तरीका है
आपके प्रोग्राम में त्रुटियाँ. यदि आपके पास कोई बड़ा है तो आप भी इस विकल्प का उपयोग करेंगे
बहुत सारे फ़ंक्शन वाला प्रोग्राम, और आप यह सुनिश्चित करना चाहते हैं कि आपके फ़ंक्शन काम न करें
अनजाने में उन वैश्विक चरों का उपयोग करें जिनका आप स्थानीय होना चाहते थे। (यह है एक
जैसे सरल परिवर्तनीय नामों के साथ गलती करना विशेष रूप से आसान है i, j, और इसी तरह।)

-D[पट्टिका]
- दाढ़[=पट्टिका]
AWK प्रोग्रामों की डिबगिंग सक्षम करें। डिफ़ॉल्ट रूप से, डिबगर कमांड पढ़ता है
कीबोर्ड से अंतःक्रियात्मक रूप से (मानक इनपुट)। वैकल्पिक पट्टिका तर्क
गैर-निष्पादित करने के लिए डिबगर के लिए आदेशों की सूची वाली एक फ़ाइल निर्दिष्ट करता है
अंतःक्रियात्मक रूप से।

-e प्रोग्राम-पाठ
--स्रोत प्रोग्राम-पाठ
उपयोग प्रोग्राम-पाठ AWK प्रोग्राम स्रोत कोड के रूप में। यह विकल्प आसान बनाता है
लाइब्रेरी फ़ंक्शंस का इंटरमिक्सिंग (के माध्यम से उपयोग किया जाता है -f और --फ़ाइल विकल्प) स्रोत के साथ
कमांड लाइन पर कोड दर्ज किया गया। यह मुख्य रूप से मध्यम से बड़े AWK के लिए है
शेल स्क्रिप्ट में उपयोग किए जाने वाले प्रोग्राम।

-E पट्टिका
--निष्पादन पट्टिका
के समान -fहालाँकि, यह विकल्प अंतिम संसाधित है। यह होना चाहिए
साथ उपयोग करना #! स्क्रिप्ट, विशेष रूप से सीजीआई अनुप्रयोगों के लिए, पास होने से बचने के लिए
URL से कमांड लाइन पर विकल्प या स्रोत कोड (!)। यह विकल्प अक्षम कर देता है
कमांड-लाइन वैरिएबल असाइनमेंट।

-g
--जेन-पॉट
AWK प्रोग्राम को स्कैन और पार्स करें, और एक GNU जनरेट करें ।मटका (पोर्टेबल ऑब्जेक्ट टेम्पलेट)
सभी स्थानीयकृत स्ट्रिंग्स के लिए प्रविष्टियों के साथ मानक आउटपुट पर फ़ाइल को प्रारूपित करें
कार्यक्रम. प्रोग्राम स्वयं निष्पादित नहीं होता है. जीएनयू देखें gettext के लिए वितरण
पर अधिक जानकारी ।मटका फाइलें.

-h
--मदद मानक आउटपुट पर उपलब्ध विकल्पों का अपेक्षाकृत संक्षिप्त सारांश प्रिंट करें।
(प्रति जीएनयू कोडन मानक, ये विकल्प तत्काल, सफल निकास का कारण बनते हैं।)

-i शामिल-फ़ाइल
--शामिल शामिल-फ़ाइल
एक awk स्रोत लाइब्रेरी लोड करें। यह का उपयोग करके लाइब्रेरी की खोज करता है AWKPATH
पर्यावरणपरिवर्ती तारक। यदि प्रारंभिक खोज विफल हो जाती है, तो दूसरा प्रयास किया जाएगा
जोड़ने के बाद .अरे प्रत्यय. फ़ाइल केवल एक बार लोड की जाएगी (अर्थात्,
डुप्लिकेट हटा दिए जाते हैं), और कोड मुख्य प्रोग्राम का गठन नहीं करता है
स्रोत।

-l lib
--भार lib
एक साझा लाइब्रेरी लोड करें lib. यह का उपयोग करके लाइब्रेरी की खोज करता है अवक्लिबपथ
पर्यावरणपरिवर्ती तारक। यदि प्रारंभिक खोज विफल हो जाती है, तो दूसरा प्रयास किया जाएगा
प्लेटफ़ॉर्म के लिए डिफ़ॉल्ट साझा लाइब्रेरी प्रत्यय जोड़ने के बाद। पुस्तकालय
इनिशियलाइज़ेशन रूटीन का नाम रखे जाने की उम्मीद है dl_load().

-L [मूल्य]
--लिंट[=मूल्य]
उन निर्माणों के बारे में चेतावनी प्रदान करें जो संदिग्ध हैं या अन्य AWK के लिए पोर्टेबल नहीं हैं
कार्यान्वयन. के वैकल्पिक तर्क के साथ घातक, लिंट चेतावनियाँ घातक हो जाती हैं
त्रुटियाँ. यह कठोर हो सकता है, लेकिन इसके उपयोग से निश्चित रूप से विकास को बढ़ावा मिलेगा
स्वच्छ AWK कार्यक्रमों की। के वैकल्पिक तर्क के साथ अमान्य, के बारे में केवल चेतावनियाँ
जो चीज़ें वास्तव में अमान्य हैं उन्हें जारी कर दिया जाता है। (यह अभी तक पूरी तरह लागू नहीं हुआ है।)

-M
--बिग्नम
संख्याओं पर मनमाना परिशुद्धता अंकगणित लागू करें। इस विकल्प का कोई प्रभाव नहीं पड़ता यदि मूर्ख
जीएनयू एमपीएफआर और एमपी पुस्तकालयों का उपयोग करने के लिए संकलित नहीं किया गया है।

-n
--गैर-दशमलव-डेटा
इनपुट डेटा में ऑक्टल और हेक्साडेसिमल मानों को पहचानें। उपयोग इसका विकल्प साथ में महान
सावधान!

-N
--उपयोग-एलसी-संख्यात्मक
यह बल मूर्ख इनपुट को पार्स करते समय स्थानीय के दशमलव बिंदु वर्ण का उपयोग करना
आंकड़े। हालाँकि POSIX मानक को इस व्यवहार की आवश्यकता है, और मूर्ख ऐसा तब करता है जब
--posix प्रभावी रूप से, डिफ़ॉल्ट पारंपरिक व्यवहार का पालन करना और एक का उपयोग करना है
दशमलव बिंदु के रूप में अवधि, यहां तक ​​कि उन स्थानों में भी जहां अवधि दशमलव नहीं है
बिंदु चरित्र. यह विकल्प पूर्ण के बिना, डिफ़ॉल्ट व्यवहार को ओवरराइड करता है
की कठोर सख्ती --posix विकल्प.

-o[पट्टिका]
--सुंदर प्रिंट[=पट्टिका]
प्रोग्राम का एक सुंदर मुद्रित संस्करण आउटपुट करें पट्टिका। यदि नही पट्टिका उपलब्ध है,
मूर्ख नामक फ़ाइल का उपयोग करता है awkprof.out वर्तमान निर्देशिका में।

-O
--अनुकूलित
प्रोग्राम के आंतरिक प्रतिनिधित्व पर अनुकूलन सक्षम करें। वर्तमान में,
इसमें सरल स्थिरांक-फोल्डिंग और पुनरावर्ती के लिए टेल कॉल उन्मूलन शामिल है
कार्य करता है। मूर्ख अनुरक्षक को समय के साथ अतिरिक्त अनुकूलन जोड़ने की उम्मीद है।

-p[प्रोफेसर फ़ाइल]
--प्रोफाइल[=प्रोफेसर फ़ाइल]
एक प्रोफ़ाइलिंग सत्र प्रारंभ करें, और प्रोफ़ाइलिंग डेटा भेजें प्रोफेसर फ़ाइल। डिफ़ॉल्ट
is awkprof.out. प्रोफ़ाइल में प्रत्येक कथन की निष्पादन गणना शामिल है
बाएं मार्जिन में प्रोग्राम और प्रत्येक उपयोगकर्ता-परिभाषित फ़ंक्शन के लिए फ़ंक्शन कॉल गिनती।

-P
--posix
यह चालू हो जाता है अनुकूलता मोड, निम्नलिखित अतिरिक्त प्रतिबंधों के साथ:

· \x भागने के अनुक्रम पहचाने नहीं जाते.

· केवल स्पेस और टैब ही फ़ील्ड विभाजक के रूप में कार्य करते हैं FS एक ही स्थान पर सेट है,
न्यूलाइन नहीं है.

· आप इसके बाद पंक्तियाँ जारी नहीं रख सकते ? और :.

· पर्यायवाची समारोह कीवर्ड के लिए समारोह मान्यता प्राप्त नहीं है।

· ऑपरेटर ** और **= के स्थान पर प्रयोग नहीं किया जा सकता ^ और ^=.

-r
-- पुनः अंतराल
का उपयोग सक्षम करें अंतराल भाव नियमित अभिव्यक्ति मिलान में (देखें नियमित
एक्सप्रेशंस, नीचे)। अंतराल अभिव्यक्तियाँ पारंपरिक रूप से उपलब्ध नहीं थीं
AWK भाषा. POSIX मानक ने उन्हें बनाने के लिए जोड़ा awk और उदा के साथ संगत
एक-दूसरे से। वे डिफ़ॉल्ट रूप से सक्षम हैं, लेकिन यह विकल्प उपयोग के लिए बना रहता है
--परंपरागत.

-S
--सैंडबॉक्स
रन मूर्ख सैंडबॉक्स मोड में, अक्षम करना प्रणाली () फ़ंक्शन, इनपुट पुनर्निर्देशन के साथ
लाइन में आओ, आउटपुट पुनर्निर्देशन के साथ छाप और printf, और डायनामिक एक्सटेंशन लोड हो रहा है।
कमांड निष्पादन (पाइपलाइनों के माध्यम से) भी अक्षम है। यह प्रभावी रूप से a को रोकता है
स्थानीय संसाधनों तक पहुँचने से स्क्रिप्ट (पर निर्दिष्ट फ़ाइलों को छोड़कर)।
कमांड लाइन)।

-t
--लिंट-पुराना
उन निर्माणों के बारे में चेतावनियाँ प्रदान करें जो मूल संस्करण के लिए पोर्टेबल नहीं हैं
यूनिक्स awk.

-V
--संस्करण
इस विशेष प्रति के लिए संस्करण जानकारी प्रिंट करें मूर्ख मानक आउटपुट पर।
यह मुख्य रूप से यह जानने के लिए उपयोगी है कि क्या इसकी वर्तमान प्रति है मूर्ख आपके सिस्टम पर है
फ्री सॉफ्टवेयर फाउंडेशन जो कुछ भी वितरित कर रहा है, उसके संबंध में आज तक।
बग की रिपोर्ट करते समय यह भी उपयोगी है। (प्रति जीएनयू कोडन मानक, इन
विकल्प तत्काल, सफल निकास का कारण बनते हैं।)

-- विकल्पों के अंत का संकेत दें. यह AWK को आगे तर्क देने की अनुमति देने के लिए उपयोगी है
प्रोग्राम को स्वयं "-" से शुरू करना होगा। यह तर्क में स्थिरता प्रदान करता है
अधिकांश अन्य POSIX प्रोग्रामों द्वारा उपयोग किया जाने वाला पार्सिंग कन्वेंशन।

संगतता मोड में, किसी भी अन्य विकल्प को अमान्य के रूप में चिह्नित किया जाता है, लेकिन अन्यथा
अवहेलना करना। सामान्य ऑपरेशन में, जब तक प्रोग्राम टेक्स्ट की आपूर्ति की जाती है, अज्ञात विकल्प
में AWK प्रोग्राम को भेज दिया जाता है एआरजीवी प्रसंस्करण के लिए सरणी. यह विशेष रूप से है
"#!" के माध्यम से AWK प्रोग्राम चलाने के लिए उपयोगी निष्पादन योग्य दुभाषिया तंत्र।

POSIX अनुकूलता के लिए, -W विकल्प का उपयोग किया जा सकता है, उसके बाद लंबे विकल्प का नाम लिखा जा सकता है।

AWK PROGRAM कार्यान्वयन


AWK प्रोग्राम में पैटर्न-एक्शन स्टेटमेंट और वैकल्पिक फ़ंक्शन का एक क्रम होता है
परिभाषाएं

@शामिल करना "फ़ाइल का नाम"
@भार "फ़ाइल का नाम"
पैटर्न { कार्य बयान }
समारोह नाम(प्राचल सूची) { बयान }

मूर्ख सबसे पहले प्रोग्राम स्रोत को पढ़ता है कार्यक्रम फाइल(ओं) यदि निर्दिष्ट है, तर्कों से
सेवा मेरे --स्रोत, या कमांड लाइन पर पहले गैर-विकल्प तर्क से। -f और
--स्रोत कमांड लाइन पर विकल्पों का कई बार उपयोग किया जा सकता है। मूर्ख प्रोग्राम पढ़ता है
पाठ ऐसे जैसे कि सभी कार्यक्रम फाइलs और कमांड लाइन स्रोत टेक्स्ट को संयोजित किया गया था
साथ में। यह बिना किसी आवश्यकता के AWK फ़ंक्शंस की लाइब्रेरी बनाने के लिए उपयोगी है
उन्हें प्रत्येक नए AWK प्रोग्राम में शामिल करें जो उनका उपयोग करता है। यह मिश्रण करने की क्षमता भी प्रदान करता है
लाइब्रेरी कमांड लाइन प्रोग्राम के साथ कार्य करती है।

इसके अलावा, से शुरू होने वाली पंक्तियाँ @शामिल करना अन्य स्रोत फ़ाइलों को शामिल करने के लिए इसका उपयोग किया जा सकता है
आपका प्रोग्राम, लाइब्रेरी के उपयोग को और भी आसान बना रहा है। यह का उपयोग करने के बराबर है -i विकल्प.

से शुरू होने वाली पंक्तियाँ @भार आपके प्रोग्राम में साझा लाइब्रेरीज़ को लोड करने के लिए उपयोग किया जा सकता है। यह
का उपयोग करने के बराबर है -l विकल्प.

पर्यावरण चर AWKPATH स्रोत फ़ाइलें ढूँढ़ते समय उपयोग करने के लिए एक खोज पथ निर्दिष्ट करता है
के साथ नामित किया गया -f और -i विकल्प. यदि यह वेरिएबल मौजूद नहीं है, तो डिफ़ॉल्ट पथ है
".:/usr/local/share/awk". (वास्तविक निर्देशिका भिन्न हो सकती है, यह इस पर निर्भर करता है कि कैसे मूर्ख था
निर्मित और स्थापित।) यदि कोई फ़ाइल नाम दिया गया है -f विकल्प में "/" वर्ण है, नहीं
पथ खोज की जाती है.

पर्यावरण चर अवक्लिबपथ स्रोत खोजते समय उपयोग करने के लिए एक खोज पथ निर्दिष्ट करता है
के साथ नामित फ़ाइलें -l विकल्प। यदि यह वेरिएबल मौजूद नहीं है, तो डिफ़ॉल्ट पथ है
"/usr/local/lib/gawk". (वास्तविक निर्देशिका भिन्न हो सकती है, यह इस पर निर्भर करता है कि कैसे मूर्ख बनाया गया था
और स्थापित किया गया।)

मूर्ख निम्नलिखित क्रम में AWK प्रोग्राम निष्पादित करता है। सबसे पहले, सभी परिवर्तनीय असाइनमेंट
के माध्यम से निर्दिष्ट -v विकल्प निष्पादित किया जाता है। अगला, मूर्ख प्रोग्राम को एक में संकलित करता है
आंतरिक रूप. तब, मूर्ख में कोड निष्पादित करता है शुरू नियम (नियम) (यदि कोई हो), और फिर
में नामित प्रत्येक फ़ाइल को पढ़ने के लिए आगे बढ़ता है एआरजीवी सारणी (तक) एआरजीवी[एआरजीसी]). यदि नहीं हैं
कमांड लाइन पर नामित फ़ाइलें, मूर्ख मानक इनपुट पढ़ता है.

यदि कमांड लाइन पर फ़ाइल नाम का फॉर्म है था=लहर इसे एक चर के रूप में माना जाता है
कार्यभार। परिवर्तनशील था मान निर्दिष्ट किया जाएगा लहर. (ऐसा किसी के बाद भी होता है
शुरू नियम चला दिए गए हैं।) कमांड लाइन वेरिएबल असाइनमेंट के लिए सबसे उपयोगी है
इनपुट को कैसे तोड़ा जाए, इसे नियंत्रित करने के लिए AWK द्वारा उपयोग किए जाने वाले वेरिएबल्स को गतिशील रूप से मान निर्दिष्ट करना
फ़ील्ड और रिकॉर्ड. यदि एकाधिक पास की आवश्यकता हो तो यह स्थिति को नियंत्रित करने के लिए भी उपयोगी है
एकल डेटा फ़ाइल पर.

यदि किसी विशेष तत्व का मान एआरजीवी खाली है (""), मूर्ख उस पर से निकल जाता है.

प्रत्येक इनपुट फ़ाइल के लिए, यदि a आरंभफ़ाइल नियम मौजूद है, मूर्ख संबंधित कोड को पहले निष्पादित करता है
फ़ाइल की सामग्री को संसाधित करना। इसी प्रकार, मूर्ख से जुड़े कोड को निष्पादित करता है
अंत फ़ाइल फ़ाइल को संसाधित करने के बाद.

इनपुट में प्रत्येक रिकॉर्ड के लिए, मूर्ख यह देखने के लिए परीक्षण करें कि क्या यह किसी से मेल खाता है पैटर्न AWK में
कार्यक्रम. रिकॉर्ड से मेल खाने वाले प्रत्येक पैटर्न के लिए, मूर्ख संबद्ध को क्रियान्वित करता है कार्य.
पैटर्न का परीक्षण उसी क्रम में किया जाता है जिस क्रम में वे प्रोग्राम में होते हैं।

अंततः, सभी इनपुट समाप्त होने के बाद, मूर्ख में कोड निष्पादित करता है अंत नियम (यदि)
कोई भी)।

आदेश लाइन निर्देशिकाएँ
POSIX के अनुसार, नाम वाली फ़ाइलें awk कमांड लाइन टेक्स्ट फ़ाइलें होनी चाहिए। व्यवहार
यदि वे नहीं हैं तो ``अपरिभाषित'' है। के अधिकांश संस्करण awk कमांड पर एक निर्देशिका का इलाज करें
एक घातक त्रुटि के रूप में पंक्ति।

के संस्करण 4.0 से प्रारंभ हो रहा है मूर्ख, कमांड लाइन पर एक निर्देशिका एक चेतावनी उत्पन्न करती है, लेकिन
अन्यथा छोड़ दिया जाता है. यदि इनमें से कोई भी --posix or --परंपरागत विकल्प दिया गया है, तो
मूर्ख कमांड लाइन पर निर्देशिकाओं को एक घातक त्रुटि के रूप में मानने पर वापस लौटता है।

चर, रिकॉर्ड्स और खेत


AWK चर गतिशील हैं; वे तब अस्तित्व में आते हैं जब उनका पहली बार उपयोग किया जाता है। उनका
मान या तो फ़्लोटिंग-पॉइंट नंबर या स्ट्रिंग, या दोनों हैं, यह इस पर निर्भर करता है कि वे कैसे हैं
इस्तेमाल किया गया। AWK में एक आयामी सरणियाँ भी हैं; अनेक आयामों वाली सारणियाँ हो सकती हैं
नकली. मूर्ख सरणियों की सही सारणी प्रदान करता है; देखना Arrays, नीचे। कई पूर्वनिर्धारित
प्रोग्राम चलने पर वेरिएबल सेट किए जाते हैं; इन्हें आवश्यकतानुसार वर्णित किया गया है और नीचे संक्षेप में प्रस्तुत किया गया है।

अभिलेख
आम तौर पर, रिकॉर्ड्स को न्यूलाइन वर्णों द्वारा अलग किया जाता है। आप नियंत्रित कर सकते हैं कि रिकॉर्ड कैसे हैं
अंतर्निहित वैरिएबल को मान निर्दिष्ट करके अलग किया गया RS. अगर RS क्या कोई एकल वर्ण है,
वह वर्ण रिकॉर्ड्स को अलग करता है. अन्यथा, RS एक नियमित अभिव्यक्ति है. में पाठ
इस रेगुलर एक्सप्रेशन से मेल खाने वाला इनपुट रिकॉर्ड को अलग कर देता है। हालाँकि, में
संगतता मोड, इसके स्ट्रिंग मान का केवल पहला अक्षर अलग करने के लिए उपयोग किया जाता है
अभिलेख. अगर RS शून्य स्ट्रिंग पर सेट किया जाता है, फिर रिकॉर्ड को रिक्त रेखाओं द्वारा अलग किया जाता है।
. RS शून्य स्ट्रिंग पर सेट किया गया है, न्यूलाइन वर्ण हमेशा फ़ील्ड विभाजक के रूप में कार्य करता है,
किसी भी मूल्य के अतिरिक्त FS हो सकता है।

फ़ील्ड
जैसे ही प्रत्येक इनपुट रिकॉर्ड पढ़ा जाता है, मूर्ख रिकॉर्ड को विभाजित करता है फ़ील्ड्स, के मान का उपयोग करते हुए
FS फ़ील्ड विभाजक के रूप में परिवर्तनीय। अगर FS एक एकल वर्ण है, फ़ील्ड अलग-अलग हैं
वह पात्र. अगर FS शून्य स्ट्रिंग है, तो प्रत्येक व्यक्तिगत वर्ण एक बन जाता है
अलग क्षेत्र. अन्यथा, FS पूर्ण नियमित अभिव्यक्ति होने की उम्मीद है। में
विशेष मामला वह FS एक एकल स्थान है, फ़ील्ड को रिक्त स्थान और/या टैब के क्रम से अलग किया जाता है
और/या नई पंक्तियाँ। (लेकिन अनुभाग देखें POSIX संगतता, नीचे)। ध्यान दें: का मान है
मामले की अनदेखी करें (नीचे देखें) यह भी प्रभावित करता है कि फ़ील्ड कब विभाजित होते हैं FS एक नियमित अभिव्यक्ति है,
और कब रिकॉर्ड कैसे अलग किये जाते हैं RS एक नियमित अभिव्यक्ति है।

अगर फ़ील्डविड्थ वेरिएबल को संख्याओं की एक स्थान से अलग सूची में सेट किया गया है, प्रत्येक फ़ील्ड है
निश्चित चौड़ाई होने की उम्मीद है, और मूर्ख निर्दिष्ट चौड़ाई का उपयोग करके रिकॉर्ड को विभाजित करता है।
के मूल्य FS नजरअंदाज कर दिया जाता है. को एक नया मान निर्दिष्ट करना FS or एफपीएटी के उपयोग को ओवरराइड करता है
फ़ील्डविड्थ.

इसी प्रकार, यदि एफपीएटी वेरिएबल को एक नियमित अभिव्यक्ति का प्रतिनिधित्व करने वाली स्ट्रिंग पर सेट किया गया है, प्रत्येक
फ़ील्ड उस टेक्स्ट से बना है जो उस नियमित अभिव्यक्ति से मेल खाता है। इस मामले में, नियमित
अभिव्यक्ति फ़ील्ड को अलग करने वाले पाठ के बजाय स्वयं फ़ील्ड का वर्णन करती है।
को एक नया मान निर्दिष्ट करना FS or फ़ील्डविड्थ के उपयोग को ओवरराइड करता है एफपीएटी.

इनपुट रिकॉर्ड में प्रत्येक फ़ील्ड को उसकी स्थिति से संदर्भित किया जा सकता है: $1, $2, और इतने पर. $0
पूरा रिकॉर्ड है. फ़ील्ड को स्थिरांक द्वारा संदर्भित करने की आवश्यकता नहीं है:

n = 5
छाप $n

इनपुट रिकॉर्ड में पाँचवाँ फ़ील्ड प्रिंट करता है।

चर NF इनपुट रिकॉर्ड में फ़ील्ड की कुल संख्या पर सेट किया गया है।

गैर-मौजूद फ़ील्ड के संदर्भ (यानी, बाद के फ़ील्ड)। $एनएफ) नल-स्ट्रिंग उत्पन्न करें।
हालाँकि, किसी गैर-मौजूद फ़ील्ड को असाइन करना (उदाहरण के लिए, $(एनएफ+2) = 5) का मान बढ़ाता है NF,
शून्य स्ट्रिंग के मान के रूप में कोई भी हस्तक्षेप करने वाला फ़ील्ड बनाता है, और मान का कारण बनता है
of $0 फ़ील्ड को मान के आधार पर अलग करते हुए, पुनः गणना की जाएगी ओएफएस. संदर्भ
ऋणात्मक क्रमांकित फ़ील्ड में गंभीर त्रुटि उत्पन्न होती है। घट रहा है NF के मूल्यों का कारण बनता है
खोए जाने वाले नए मान से पहले फ़ील्ड, और का मान $0 के साथ पुनः गणना की जानी है
फ़ील्ड को मान से अलग किया जा रहा है ओएफएस.

किसी मौजूदा फ़ील्ड के लिए मान निर्दिष्ट करने से संपूर्ण रिकॉर्ड को फिर से बनाना पड़ता है $0 is
संदर्भित. इसी प्रकार, को एक मान निर्दिष्ट करना $0 रिकॉर्ड को पुनः विभाजित करने, बनाने का कारण बनता है
फ़ील्ड के लिए नए मान.

अन्तर्निर्मित में चर
मूर्खके अंतर्निहित चर हैं:

एआरजीसी कमांड लाइन तर्कों की संख्या (इसमें विकल्प शामिल नहीं हैं मूर्खया,
कार्यक्रम स्रोत)

अरगिंद में सूचकांक एआरजीवी संसाधित की जा रही वर्तमान फ़ाइल का.

एआरजीवी कमांड लाइन तर्कों की श्रृंखला. सरणी को 0 से अनुक्रमित किया गया है एआरजीसी - 1.
की सामग्री को गतिशील रूप से बदलना एआरजीवी डेटा के लिए उपयोग की जाने वाली फ़ाइलों को नियंत्रित कर सकता है।

बिनमोड गैर-POSIX सिस्टम पर, सभी फ़ाइल I/O के लिए "बाइनरी" मोड का उपयोग निर्दिष्ट करता है।
1, 2, या 3 के संख्यात्मक मान, इनपुट फ़ाइलों, आउटपुट फ़ाइलों या सभी को निर्दिष्ट करते हैं
फ़ाइलों को क्रमशः बाइनरी I/O का उपयोग करना चाहिए। के स्ट्रिंग मान "आर"या, "डब्ल्यू"
निर्दिष्ट करें कि इनपुट फ़ाइलें, या आउटपुट फ़ाइलें, क्रमशः, बाइनरी का उपयोग करना चाहिए
मैं/ओ. के स्ट्रिंग मान "आरडब्ल्यू" or "wr" निर्दिष्ट करें कि सभी फ़ाइलों को बाइनरी का उपयोग करना चाहिए
मैं/ओ. किसी अन्य स्ट्रिंग मान को इस प्रकार माना जाता है "आरडब्ल्यू", लेकिन एक चेतावनी उत्पन्न करता है
संदेश।

CONVFMT संख्याओं के लिए रूपांतरण प्रारूप, "%6g", डिफ़ॉल्ट रूप से।

घेरना एक सारणी जिसमें वर्तमान परिवेश के मान शामिल हैं। सरणी है
पर्यावरण चर द्वारा अनुक्रमित, प्रत्येक तत्व का मूल्य होता है
परिवर्तनीय (जैसे, पर्यावरण["घर"] हो सकता है "/होम/अर्नोल्ड"). इस सरणी को बदल रहा हूँ
जो प्रोग्रामों द्वारा देखे गए वातावरण को प्रभावित नहीं करता है मूर्ख के माध्यम से उत्पन्न होता है
पुनर्निर्देशन या प्रणाली () समारोह.

इरनो यदि कोई सिस्टम त्रुटि उत्पन्न होती है तो इसके लिए पुनर्निर्देशन करें लाइन में आओ, पढ़ने के दौरान
एसटी लाइन में आओ, या एक के दौरान बंद करे(), तो इरनो वर्णन करने वाली एक स्ट्रिंग होगी
त्रुटि। यह मान गैर-अंग्रेज़ी स्थानों में अनुवाद के अधीन है।

फ़ील्डविड्थ फ़ील्ड चौड़ाई की एक रिक्त स्थान से अलग की गई सूची। सेट होने पर, मूर्ख इनपुट को पार्स करता है
के मान का उपयोग करने के बजाय, निश्चित चौड़ाई के फ़ील्ड में FS चर के रूप में
फ़ील्ड विभाजक. देखना फ़ील्ड, ऊपर।

फ़ाइल का नाम वर्तमान इनपुट फ़ाइल का नाम. यदि कमांड पर कोई फ़ाइल निर्दिष्ट नहीं है
रेखा, का मान फ़ाइल का नाम है "-"। हालाँकि, फ़ाइल का नाम के अंदर अपरिभाषित है
शुरू नियम (जब तक कि निर्धारित न हो लाइन में आओ).

एफ एन आर वर्तमान इनपुट फ़ाइल में इनपुट रिकॉर्ड संख्या.

एफपीएटी एक रिकॉर्ड में फ़ील्ड की सामग्री का वर्णन करने वाली एक नियमित अभिव्यक्ति। कब
सेट, मूर्ख इनपुट को फ़ील्ड में पार्स करता है, जहां फ़ील्ड नियमित से मेल खाते हैं
अभिव्यक्ति, के मान का उपयोग करने के बजाय FS फ़ील्ड के रूप में परिवर्तनशील
विभाजक. देखना फ़ील्ड, ऊपर।

FS इनपुट फ़ील्ड विभाजक, डिफ़ॉल्ट रूप से एक स्थान। देखना फ़ील्ड, ऊपर।

FUNCTAB एक सरणी जिसके सूचकांक और संबंधित मान सभी उपयोगकर्ता के नाम हैं-
प्रोग्राम में परिभाषित या विस्तारित फ़ंक्शन। ध्यान दें: आप इसका उपयोग नहीं कर सकते
हटाना के साथ बयान FUNCTAB सरणी।

मामले की अनदेखी करें सभी रेगुलर एक्सप्रेशन और स्ट्रिंग ऑपरेशंस की केस-संवेदनशीलता को नियंत्रित करता है।
If मामले की अनदेखी करें एक गैर-शून्य मान है, फिर स्ट्रिंग तुलना और पैटर्न
नियमों में मिलान, क्षेत्र विभाजन के साथ FS और एफपीएटी, रिकॉर्ड के साथ अलग करना
RS, रेगुलर एक्सप्रेशन से मेल खाता है ~ और !~, और जेनसब(), जीएसयूबी(),
सूचकांक (), मिलान(), पैटस्प्लिट(), विभाजित करें(), तथा विषय() अंतर्निहित फ़ंक्शन सभी अनदेखा कर देते हैं
रेगुलर एक्सप्रेशन ऑपरेशन करते समय मामला। ध्यान दें: ऐरे सबस्क्रिप्टिंग है
नहीं प्रभावित। हालांकि एक प्रकार() और असॉर्टी() कार्य प्रभावित होते हैं।
इस प्रकार, यदि मामले की अनदेखी करें शून्य के बराबर नहीं है, /एबी/ सभी तारों से मेल खाता है
"अब", "एबी", "अब", तथा "एबी". सभी AWK वेरिएबल्स की तरह, का प्रारंभिक मान
मामले की अनदेखी करें शून्य है, इसलिए सभी रेगुलर एक्सप्रेशन और स्ट्रिंग ऑपरेशन शून्य हैं
सामान्यतः केस-संवेदी।

एक प्रकार का वृक्ष का गतिशील नियंत्रण प्रदान करता है --लिंट AWK प्रोग्राम के भीतर से विकल्प।
जब सच हो, मूर्ख लिंट चेतावनियाँ प्रिंट करता है। जब असत्य होता है, तो ऐसा नहीं होता। जब सौंपा गया
स्ट्रिंग मान "घातक", लिंट चेतावनियाँ घातक त्रुटियाँ बन जाती हैं, बिल्कुल वैसी ही
--लिंट=घातक. कोई भी अन्य वास्तविक मान केवल चेतावनियाँ मुद्रित करता है।

NF वर्तमान इनपुट रिकॉर्ड में फ़ील्ड की संख्या.

NR अब तक देखे गए इनपुट रिकॉर्ड की कुल संख्या.

ओएफएमटी संख्याओं के लिए आउटपुट स्वरूप, "%6g", डिफ़ॉल्ट रूप से।

ओएफएस आउटपुट फ़ील्ड विभाजक, डिफ़ॉल्ट रूप से एक स्थान।

ओआरएस आउटपुट रिकॉर्ड विभाजक, डिफ़ॉल्ट रूप से एक नई पंक्ति।

सटीक मनमानी परिशुद्धता फ़्लोटिंग-पॉइंट संख्याओं की कार्य परिशुद्धता, 53 द्वारा
चूक।

PROCINFO इस सरणी के तत्व चल रहे AWK के बारे में जानकारी तक पहुंच प्रदान करते हैं
कार्यक्रम. कुछ प्रणालियों पर, सरणी में तत्व हो सकते हैं, "समूह 1"
पूज्य गुरुदेव के मार्गदर्शन से संपन्न कर सकते हैं - "समूहn" कुछ के लिए n, जो कि पूरक समूहों की संख्या है
प्रक्रिया है. उपयोग in इन तत्वों का परीक्षण करने के लिए ऑपरेटर।
निम्नलिखित तत्वों के उपलब्ध होने की गारंटी है:

PROCINFO["egid"] का मूल्य getegid(2) सिस्टम कॉल.

PROCINFO["strftime"]
के लिए डिफ़ॉल्ट समय प्रारूप स्ट्रिंग स्ट्रैटटाइम ().

PROCINFO["euid"] का मूल्य गेट्यूइड(2) सिस्टम कॉल.

PROCINFO["FS"] "एफएस" यदि फ़ील्ड के साथ विभाजन हो रहा है FS प्रभाव में है, "एफपीएटी" if
फ़ील्ड विभाजन के साथ एफपीएटी प्रभाव में है, या "फ़ील्डविड्थ"
यदि फ़ील्ड के साथ विभाजन हो रहा है फ़ील्डविड्थ प्रभाव में है।

PROCINFO["पहचानकर्ता"]
एक उपसरणी, उपयोग किए गए सभी पहचानकर्ताओं के नामों से अनुक्रमित
AWK कार्यक्रम के पाठ में। मान क्या दर्शाते हैं
मूर्ख इसके समाप्त होने के बाद पहचानकर्ताओं के बारे में जानता है
कार्यक्रम को पार्स करना; वे हैं नहीं जबकि अद्यतन किया गया
प्रोग्राम चलता है. प्रत्येक पहचानकर्ता के लिए, का मान
तत्व निम्नलिखित में से एक है:

"सरणी"
पहचानकर्ता एक सरणी है.

"बिलिन"
पहचानकर्ता एक अंतर्निहित फ़ंक्शन है.

"विस्तार"
पहचानकर्ता एक एक्सटेंशन फ़ंक्शन है जिसके माध्यम से लोड किया गया है
@भार or -l.

"अदिश"
पहचानकर्ता एक अदिश राशि है.

"अलिखित"
पहचानकर्ता टाइप नहीं किया गया है (इसका उपयोग इस रूप में किया जा सकता है)।
अदिश या सरणी, मूर्ख अभी तक नहीं पता)।

"उपयोगकर्ता" पहचानकर्ता एक उपयोगकर्ता-परिभाषित फ़ंक्शन है।

PROCINFO["gid"] का मूल्य getgid(2) सिस्टम कॉल.

PROCINFO["pgrpid"] वर्तमान प्रक्रिया की प्रक्रिया समूह आईडी.

PROCINFO["pid"] वर्तमान प्रक्रिया की प्रक्रिया आईडी.

PROCINFO["ppid"] वर्तमान प्रक्रिया की मूल प्रक्रिया आईडी.

PROCINFO["uid"] का मूल्य गेटुइड(2) सिस्टम कॉल.

PROCINFO["sorted_in"]
यदि यह तत्व मौजूद है PROCINFO, तो इसका मूल्य
उस क्रम को नियंत्रित करता है जिसमें सरणी तत्वों को पार किया जाता है
in एसटी लूप्स समर्थित मूल्य हैं "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc", तथा
"@अनसॉर्टेड". वैल्यू किसी का नाम भी हो सकता है
तुलना फ़ंक्शन को इस प्रकार परिभाषित किया गया है:

समारोह सीएमपी_func(i1, v1, आई३८६, v2)

जहां i1 और i2 सूचकांक हैं, और v1 और v2 हैं
तुलना किए जा रहे दो तत्वों के संगत मान।
इसे इससे कम, बराबर या अधिक संख्या में लौटाना चाहिए
0 से अधिक, यह इस पर निर्भर करता है कि सरणी के तत्व कैसे हैं
आदेश दिया जाए.

PROCINFO["इनपुट", "समय से पढने की समय सीमा समाप्त"]
डेटा पढ़ने के लिए मिलीसेकंड में टाइमआउट निवेश,
जहां निवेश एक पुनर्निर्देशन स्ट्रिंग या फ़ाइल नाम है. एक कीमत
शून्य या शून्य से कम का मतलब कोई समयबाह्य नहीं है।

PROCINFO["mpfr_version"]
जीएनयू एमपीएफआर लाइब्रेरी का संस्करण मनमानी के लिए उपयोग किया जाता है
में परिशुद्धता संख्या समर्थन मूर्ख. यह प्रविष्टि नहीं है
यदि एमपीएफआर समर्थन संकलित नहीं है तो मौजूद है मूर्ख.

PROCINFO["gmp_version"]
जीएनयू एमपी लाइब्रेरी का संस्करण मनमानी के लिए उपयोग किया जाता है
में परिशुद्धता संख्या समर्थन मूर्ख. यह प्रविष्टि नहीं है
यदि एमपीएफआर समर्थन संकलित नहीं है तो मौजूद है मूर्ख.

PROCINFO["prec_max"]
जीएनयू एमपीएफआर लाइब्रेरी द्वारा समर्थित अधिकतम परिशुद्धता
मनमानी परिशुद्धता फ़्लोटिंग-पॉइंट संख्याओं के लिए। यह
यदि एमपीएफआर समर्थन संकलित नहीं है तो प्रविष्टि मौजूद नहीं है
मूर्ख.

PROCINFO["prec_min"]
GNU MPFR लाइब्रेरी द्वारा अनुमत न्यूनतम परिशुद्धता
मनमानी परिशुद्धता फ़्लोटिंग-पॉइंट संख्याएँ। यह प्रविष्टि है
यदि एमपीएफआर समर्थन संकलित नहीं है तो मौजूद नहीं है मूर्ख.

PROCINFO["api_majar"]
एक्सटेंशन एपीआई का प्रमुख संस्करण. यह प्रविष्टि नहीं है
यदि डायनामिक एक्सटेंशन लोड करना उपलब्ध नहीं है तो मौजूद रहें।

PROCINFO["api_minor"]
एक्सटेंशन एपीआई का लघु संस्करण. यह प्रविष्टि नहीं है
यदि डायनामिक एक्सटेंशन लोड करना उपलब्ध नहीं है तो मौजूद रहें।

PROCINFO["संस्करण"] का संस्करण मूर्ख.

राउंडमोड संख्याओं पर मनमाने ढंग से सटीक अंकगणित के लिए उपयोग करने के लिए राउंडिंग मोड
चूक "एन" (आईईईई-754 राउंडटाइज़टूईवन मोड)। स्वीकृत मूल्य हैं "एन" or
"एन" राउंडटाइज़टूईवन के लिए, "यू" or "यू" राउंडटुवार्डपॉजिटिव के लिए, 'डी' or "डी" एसटी
नकारात्मक की ओर गोल, "जेड" or "ज़" राउंडटूवर्डज़ीरो के लिए, और यदि आपका संस्करण है
जीएनयू एमपीएफआर लाइब्रेरी इसका समर्थन करती है, "ए" or "ए" राउंडटाइज़टूअवे के लिए।

RS इनपुट रिकॉर्ड विभाजक, डिफ़ॉल्ट रूप से एक नई पंक्ति।

RT रिकॉर्ड टर्मिनेटर. मूर्ख सेट RT इनपुट टेक्स्ट से मेल खाता है
द्वारा निर्दिष्ट वर्ण या नियमित अभिव्यक्ति RS.

आर START प्रथम वर्ण का सूचकांक इससे मेल खाता है मिलान(); यदि कोई मेल नहीं है तो 0. (यह
तात्पर्य यह है कि चरित्र सूचकांक एक से शुरू होते हैं।)

लम्बाई स्ट्रिंग की लंबाई से मेल खाती है मिलान(); -1 यदि कोई मेल नहीं है।

उप वर्ण का उपयोग सरणी तत्वों में एकाधिक सबस्क्रिप्ट को अलग करने के लिए किया जाता है
चूक "\034".

सिंटैब एक सरणी जिसके सूचकांक वर्तमान में परिभाषित सभी वैश्विक चर के नाम हैं
और कार्यक्रम में सरणियाँ। सरणी का उपयोग पढ़ने के लिए अप्रत्यक्ष पहुंच के लिए किया जा सकता है
या किसी वेरिएबल का मान लिखें:

foo = 5
SYMTAB["फू"] = 4
छाप foo # प्रिंट 4

RSI इसरे () फ़ंक्शन का उपयोग यह जांचने के लिए किया जा सकता है कि कोई तत्व अंदर है या नहीं सिंटैब है एक
सरणी. आप इसका उपयोग नहीं कर सकते हटाना के साथ बयान सिंटैब सरणी।

टेक्स्टडोमेन AWK प्रोग्राम का टेक्स्ट डोमेन; स्थानीयकृत अनुवाद खोजने के लिए उपयोग किया जाता है
प्रोग्राम के स्ट्रिंग्स के लिए.

Arrays
सारणियों को वर्गाकार कोष्ठकों के बीच एक अभिव्यक्ति के साथ सबस्क्रिप्ट किया गया है ([ और ])। अगर द
अभिव्यक्ति एक अभिव्यक्ति सूची है (expr, expr ...) तो सरणी सबस्क्रिप्ट एक स्ट्रिंग है
प्रत्येक अभिव्यक्ति के (स्ट्रिंग) मान के संयोजन से मिलकर, अलग किया गया
का मूल्य उप चर। इस सुविधा का उपयोग बहुआयामी अनुकरण के लिए किया जाता है
सरणियाँ। उदाहरण के लिए:

i = "ए"; j = "बी"; k = "सी"
एक्स[मैं, j, k] = "नमस्ते, दुनिया\n"

स्ट्रिंग निर्दिष्ट करता है "नमस्ते, दुनिया\n" सरणी के तत्व के लिए x जिसे द्वारा अनुक्रमित किया गया है
स्ट्रिंग "ए\034बी\034सी". AWK में सभी सरणियाँ सहयोगी हैं, अर्थात, स्ट्रिंग मानों द्वारा अनुक्रमित हैं।

विशेष संचालिका in इसका उपयोग यह जांचने के लिए किया जा सकता है कि किसी सरणी में एक सूचकांक है या नहीं
विशेष मूल्य:

if (वैल in सरणी)
छाप सारणी[वैल]

यदि सरणी में एकाधिक सबस्क्रिप्ट हैं, तो उपयोग करें (मैं, j) in सरणी.

RSI in निर्माण का उपयोग a में भी किया जा सकता है एसटी के सभी तत्वों पर पुनरावृति करने के लिए लूप
सरणी। हालांकि (मैं, j) in सरणी निर्माण केवल परीक्षणों में काम करता है, अंदर नहीं एसटी लूप।

का उपयोग करके किसी ऐरे से किसी तत्व को हटाया जा सकता है हटाना बयान। हटाना कथन
केवल सरणी निर्दिष्ट करके, किसी सरणी की संपूर्ण सामग्री को हटाने के लिए भी उपयोग किया जा सकता है
सबस्क्रिप्ट के बिना नाम.

मूर्ख वास्तविक बहुआयामी सरणियों का समर्थन करता है। इसके लिए ऐसी सारणियों की आवश्यकता नहीं है
``आयताकार'' जैसा कि C या C++ में है। उदाहरण के लिए:

एक [1] = 5
एक[2][1] = 6
एक[2][2] = 7

ध्यान दें: आपको बताना पड़ सकता है मूर्ख उपयोग करने के लिए एक सरणी तत्व वास्तव में एक उपसरणी है
यह कहाँ मूर्ख एक सरणी की अपेक्षा करता है (जैसे कि दूसरे तर्क में विभाजित करें()). आप कर सकते हैं
यह उपसरणी में एक तत्व बनाकर और फिर उसे हटाकर हटाना
बयान।

परिवर्तनीय टाइपिंग तथा रूपांतरण
वेरिएबल और फ़ील्ड (फ़्लोटिंग पॉइंट) संख्याएँ, या स्ट्रिंग, या दोनों हो सकते हैं। मूल्य कैसा
किसी चर की व्याख्या उसके संदर्भ पर निर्भर करती है। यदि संख्यात्मक अभिव्यक्ति में प्रयोग किया जाता है,
इसे एक संख्या के रूप में माना जाएगा; यदि इसे एक स्ट्रिंग के रूप में उपयोग किया जाता है तो इसे एक स्ट्रिंग के रूप में माना जाएगा।

किसी चर को संख्या मानने के लिए बाध्य करने के लिए उसमें 0 जोड़ें; इसे एक के रूप में मानने के लिए बाध्य करना
स्ट्रिंग, इसे शून्य स्ट्रिंग के साथ संयोजित करें।

अप्रारंभीकृत चर में संख्यात्मक मान 0 और स्ट्रिंग मान "" (शून्य, या) होता है
खाली स्ट्रिंग)।

जब एक स्ट्रिंग को एक संख्या में परिवर्तित किया जाना चाहिए, तो रूपांतरण का उपयोग करके पूरा किया जाता है
स्ट्रटोड(3). के मान का उपयोग करके एक संख्या को एक स्ट्रिंग में परिवर्तित किया जाता है CONVFMT एक प्रारूप के रूप में
के लिए स्ट्रिंग sprintf(3), तर्क के रूप में चर के संख्यात्मक मान के साथ। हालाँकि,
भले ही AWK में सभी संख्याएँ फ़्लोटिंग-पॉइंट हैं, अभिन्न मान हैं हमेशा के रूप में परिवर्तित किया गया
पूर्णांक इस प्रकार, दिया गया

CONVFMT = "%2.2f"
a = 12
b = a ""

चर b का एक स्ट्रिंग मान है "12" और नहीं "12.00".

ध्यान दें: POSIX मोड में काम करते समय (जैसे कि --posix विकल्प), उस स्थान से सावधान रहें
सेटिंग्स दशमलव संख्याओं के व्यवहार में हस्तक्षेप कर सकती हैं: दशमलव विभाजक
जिन नंबरों को आप फीड कर रहे हैं मूर्ख आपके स्थान की अपेक्षा के अनुरूप होना चाहिए, चाहे वह कोई भी हो
अल्पविराम (,) या एक अवधि (.)।

मूर्ख निम्न प्रकार से तुलना करता है: यदि दो चर संख्यात्मक हैं, तो उनकी तुलना की जाती है
संख्यात्मक रूप से. यदि एक मान संख्यात्मक है और दूसरे में एक स्ट्रिंग मान है जो "संख्यात्मक" है
स्ट्रिंग,'' तो तुलना भी संख्यात्मक रूप से की जाती है। अन्यथा, संख्यात्मक मान है
एक स्ट्रिंग में परिवर्तित किया जाता है और एक स्ट्रिंग तुलना की जाती है। दो तारों की तुलना की जाती है
बेशक, स्ट्रिंग के रूप में।

ध्यान दें कि स्ट्रिंग स्थिरांक, जैसे कि "57", कर रहे हैं नहीं संख्यात्मक स्ट्रिंग, वे स्ट्रिंग हैं
स्थिरांक "संख्यात्मक स्ट्रिंग" का विचार केवल फ़ील्ड पर लागू होता है, लाइन में आओ इनपुट, फ़ाइल का नाम,
एआरजीवी तत्वों, घेरना तत्वों और द्वारा बनाई गई सरणी के तत्व विभाजित करें() or
पैटस्प्लिट() वह संख्यात्मक स्ट्रिंग हैं। मूल विचार यही है उपयोगकर्ता निवेश, और केवल उपयोगकर्ता
इनपुट, जो संख्यात्मक दिखता है, उसके साथ उसी तरह व्यवहार किया जाना चाहिए।

अष्टभुजाकार और षोडश आधारी स्थिरांक
आप अपने AWK प्रोग्राम स्रोत कोड में C-स्टाइल ऑक्टल और हेक्साडेसिमल स्थिरांक का उपयोग कर सकते हैं। के लिए
उदाहरण के लिए, अष्टक मान 011 दशमलव के बराबर है 9, और हेक्साडेसिमल मान 0x11 is
दशमलव 17 के बराबर।

तार स्थिरांक
AWK में स्ट्रिंग स्थिरांक दोहरे उद्धरण चिह्नों (जैसे) के बीच संलग्न वर्णों के अनुक्रम हैं
"मूल्य"). स्ट्रिंग्स के भीतर, निश्चित बच दृश्यों सी में पहचाने जाते हैं। ये हैं:

\ एक शाब्दिक बैकस्लैश.

\a "चेतावनी" चरित्र; आमतौर पर ASCII BEL वर्ण।

\b बैकस्पेस.

\f फ़ीड बनाएं।

\n नई पंक्ति।

\r कैरिज रिटर्न।

\t क्षैतिज टैब.

\v लंबवत टैब.

\xहेक्स अंक
निम्नलिखित हेक्साडेसिमल अंकों की स्ट्रिंग द्वारा दर्शाया गया वर्ण \x. जैसा
आईएसओ सी में, निम्नलिखित सभी हेक्साडेसिमल अंकों को एस्केप का हिस्सा माना जाता है
अनुक्रम। (यह सुविधा हमें भाषा डिज़ाइन के बारे में कुछ बताएगी
समिति.) जैसे, "\x1B" ASCII ESC (एस्केप) वर्ण है।

DDD अष्टक अंकों के 1-, 2-, या 3-अंकीय अनुक्रम द्वारा दर्शाया गया वर्ण। जैसे,
"\033" ASCII ESC (एस्केप) वर्ण है।

c शाब्दिक पात्र c.

एस्केप अनुक्रमों का उपयोग निरंतर नियमित अभिव्यक्तियों के अंदर भी किया जा सकता है (उदाहरण के लिए,
/[ \t\f\n\r\v]/ रिक्त स्थान वर्णों से मेल खाता है)।

संगतता मोड में, ऑक्टल और हेक्साडेसिमल एस्केप द्वारा दर्शाए गए वर्ण
जब नियमित अभिव्यक्ति स्थिरांक में उपयोग किया जाता है तो अनुक्रमों को शाब्दिक रूप से व्यवहार किया जाता है। इस प्रकार, /ए\52बी/
के बराबर है /ए\*बी/.

पैटर्न और कार्रवाई


AWK एक रेखा-उन्मुख भाषा है। पैटर्न पहले आता है, और फिर क्रिया। कार्य
कथन संलग्न हैं { और }. या तो पैटर्न गायब हो सकता है, या कार्रवाई हो सकती है
गायब रहें, लेकिन, ज़ाहिर है, दोनों नहीं। यदि पैटर्न गायब है, तो कार्रवाई निष्पादित की जाती है
इनपुट के हर एक रिकॉर्ड के लिए। एक लुप्त क्रिया के बराबर है

{ छाप }

जो पूरे रिकॉर्ड को प्रिंट करता है।

टिप्पणियाँ से शुरू होती हैं # चरित्र, और पंक्ति के अंत तक जारी रखें। रिक्त पंक्तियाँ
कथनों को अलग करने के लिए उपयोग किया जा सकता है। आम तौर पर, एक बयान एक नई पंक्ति के साथ समाप्त होता है, हालाँकि,
यह अल्पविराम में समाप्त होने वाली पंक्तियों के मामले में नहीं है, {, ?, :, &&या, ||. में समाप्त होने वाली पंक्तियाँ do
or अन्य उनके कथन स्वचालित रूप से निम्नलिखित पंक्ति पर जारी रहते हैं। में
अन्य मामलों में, एक पंक्ति को "\" के साथ समाप्त करके जारी रखा जा सकता है, जिस स्थिति में नई पंक्ति होती है
अवहेलना करना।

एकाधिक कथनों को ";" से अलग करके एक पंक्ति में रखा जा सकता है। यह इस पर लागू होता है
एक पैटर्न-एक्शन जोड़ी (सामान्य मामला) के एक्शन भाग के भीतर दोनों कथन, और
स्वयं पैटर्न-एक्शन कथनों के लिए।

पैटर्न्स
AWK पैटर्न निम्नलिखित में से एक हो सकता है:

शुरू
अंत
आरंभफ़ाइल
अंत फ़ाइल
/नियमित अभिव्यक्ति/
रिलेशनल अभिव्यक्ति
पैटर्न && पैटर्न
पैटर्न || पैटर्न
पैटर्न ? पैटर्न : पैटर्न
(पैटर्न)
! पैटर्न
pattern1, pattern2

शुरू और अंत दो विशेष प्रकार के पैटर्न हैं जिनका इनपुट के विरुद्ध परीक्षण नहीं किया जाता है।
सभी के क्रिया भाग शुरू पैटर्न इस प्रकार विलीन हो गए हैं मानो सभी कथन एक हो गए हों
एक में लिखा है शुरू नियम। किसी भी इनपुट को पढ़ने से पहले उन्हें निष्पादित किया जाता है।
इसी प्रकार, सभी अंत नियमों को मर्ज कर दिया जाता है, और तब निष्पादित किया जाता है जब सभी इनपुट समाप्त हो जाते हैं (या
जब ए निकास कथन निष्पादित किया गया है)। शुरू और अंत पैटर्न को दूसरे के साथ नहीं जोड़ा जा सकता
पैटर्न अभिव्यक्ति में पैटर्न. शुरू और अंत पैटर्न में क्रिया भाग गायब नहीं हो सकते।

आरंभफ़ाइल और अंत फ़ाइल अतिरिक्त विशेष पैटर्न हैं जिनके निकाय पहले क्रियान्वित किए जाते हैं
प्रत्येक कमांड लाइन इनपुट फ़ाइल का पहला रिकॉर्ड पढ़ना और अंतिम रिकॉर्ड पढ़ने के बाद
प्रत्येक फ़ाइल का. के अंदर आरंभफ़ाइल नियम, का मूल्य इरनो यदि खाली स्ट्रिंग होगी
फ़ाइल सफलतापूर्वक खोली गई. अन्यथा, फ़ाइल और के साथ कुछ समस्या है
कोड का उपयोग करना चाहिए अगलीफ़ाइल इसे छोड़ना. यदि ऐसा नहीं किया गया, मूर्ख अपना सामान्य घातक परिणाम उत्पन्न करता है
उन फ़ाइलों के लिए त्रुटि जिन्हें खोला नहीं जा सकता.

के लिए /नियमित अभिव्यक्ति/ पैटर्न, प्रत्येक इनपुट के लिए संबंधित कथन निष्पादित किया जाता है
रिकॉर्ड जो नियमित अभिव्यक्ति से मेल खाता है। रेगुलर एक्सप्रेशन वही हैं जो इसमें हैं
उदा(1), और नीचे संक्षेप में प्रस्तुत किया गया है।

A रिलेशनल अभिव्यक्ति नीचे अनुभाग में परिभाषित किसी भी ऑपरेटर का उपयोग कर सकता है
कार्रवाई. ये आम तौर पर परीक्षण करते हैं कि क्या कुछ फ़ील्ड कुछ नियमित अभिव्यक्तियों से मेल खाते हैं।

RSI &&, ||, तथा ! ऑपरेटर क्रमशः तार्किक AND, तार्किक OR, और तार्किक NOT हैं,
सी की तरह। वे शॉर्ट-सर्किट मूल्यांकन करते हैं, सी की तरह भी, और अधिक संयोजन के लिए उपयोग किया जाता है
आदिम पैटर्न अभिव्यक्तियाँ. अधिकांश भाषाओं की तरह, बदलने के लिए कोष्ठकों का उपयोग किया जा सकता है
मूल्यांकन का क्रम.

RSI ?: ऑपरेटर C में समान ऑपरेटर की तरह है। यदि पहला पैटर्न सत्य है तो
परीक्षण के लिए उपयोग किया जाने वाला पैटर्न दूसरा पैटर्न है, अन्यथा यह तीसरा है। में से केवल एक
दूसरे और तीसरे पैटर्न का मूल्यांकन किया जाता है।

RSI pattern1, pattern2 अभिव्यक्ति के रूप को a कहा जाता है रेंज पैटर्न. यह सभी से मेल खाता है
इनपुट रिकॉर्ड उस रिकॉर्ड से शुरू होते हैं जो मेल खाता है pattern1, और एक रिकॉर्ड तक जारी रहेगा
यह मेल खाता है pattern2, सहित। यह किसी अन्य प्रकार के पैटर्न के साथ मेल नहीं खाता है
अभिव्यक्ति।

नियमित एक्सप्रेशंस
नियमित अभिव्यक्तियाँ विस्तारित रूप में पाई जाती हैं उदा. वे पात्रों से बने हैं
के रूप में इस प्रकार है:

c गैर-मेटाकैरेक्टर से मेल खाता है c.

\c शाब्दिक चरित्र से मेल खाता है c.

. किसी भी चरित्र से मेल खाता है समेत नई पंक्ति।

^ एक स्ट्रिंग की शुरुआत से मेल खाता है.

$ एक स्ट्रिंग के अंत से मेल खाता है.

[एबीसी...] एक वर्ण सूची: किसी भी वर्ण से मेल खाती है एबीसी.... आप एक शामिल कर सकते हैं
वर्णों की श्रेणी को डैश से अलग करके।

[^एबीसी...] एक अस्वीकृत वर्ण सूची: सिवाय किसी भी वर्ण से मेल खाती है एबीसी....

r1|r2 प्रत्यावर्तन: या तो मेल खाता है r1 or r2.

r1r2 संयोजन: मेल खाता है r1, और फिर r2.

r+ एक या अधिक से मेल खाता है rके।

r* शून्य या अधिक से मेल खाता है rके।

r? शून्य या एक से मेल खाता है rके।

(r) समूहन: मिलान r.

r{n}
r{n,}
r{n,m} ब्रेसिज़ के अंदर एक या दो संख्याएँ एक को दर्शाती हैं अंतराल अभिव्यक्ति। अगर वहाँ है
ब्रेसिज़ में एक संख्या, पूर्ववर्ती नियमित अभिव्यक्ति r दोहराया जाता है n
बार. यदि दो संख्याएं अल्पविराम से अलग की गई हैं, r दोहराया जाता है n सेवा मेरे m
बार. यदि एक संख्या के बाद अल्पविराम है, तो r कम से कम दोहराया जाता है
n बार.

\y किसी शब्द के आरंभ या अंत में खाली स्ट्रिंग से मेल खाता है।

\B किसी शब्द के भीतर खाली स्ट्रिंग से मेल खाता है।

\< किसी शब्द की शुरुआत में खाली स्ट्रिंग से मेल खाता है।

\> किसी शब्द के अंत में खाली स्ट्रिंग से मेल खाता है।

\s किसी भी रिक्त स्थान वर्ण से मेल खाता है।

\S किसी भी गैर-व्हाट्सएप वर्ण से मेल खाता है।

\w किसी भी शब्द-घटक वर्ण (अक्षर, अंक, या अंडरस्कोर) से मेल खाता है।

\W किसी भी ऐसे वर्ण से मेल खाता है जो शब्द-घटक नहीं है।

\` बफ़र (स्ट्रिंग) की शुरुआत में खाली स्ट्रिंग से मेल खाता है।

\' बफ़र के अंत में खाली स्ट्रिंग से मेल खाता है।

एस्केप अनुक्रम जो स्ट्रिंग स्थिरांक में मान्य हैं (देखें)। तार स्थिरांक) भी हैं
रेगुलर एक्सप्रेशन में मान्य.

चरित्र कक्षाएं POSIX मानक में पेश की गई एक सुविधा है। एक चरित्र वर्ग एक है
विशिष्ट विशेषता वाले वर्णों की सूची का वर्णन करने के लिए विशेष संकेतन, लेकिन
जहां वास्तविक पात्र अलग-अलग देशों और/या अलग-अलग हो सकते हैं
कैरेक्टर सेट से कैरेक्टर सेट। उदाहरण के लिए, वर्णमाला क्या है इसकी धारणा
संयुक्त राज्य अमेरिका और फ्रांस में चरित्र भिन्न है।

एक वर्ण वर्ग केवल नियमित अभिव्यक्ति में मान्य है अंदर किसी वर्ण के कोष्ठक
सूची। चरित्र वर्गों से मिलकर बनता है [:, वर्ग को दर्शाने वाला एक कीवर्ड, और :]
POSIX मानक द्वारा परिभाषित वर्ण वर्ग हैं:

[: अलनम:] अक्षरांकीय वर्ण।

[: अल्फा:] वर्णमाला वर्ण.

[: रिक्त:] स्पेस या टैब वर्ण.

[: सीएनटीआरएल:] वर्णों पर नियंत्रण रखें.

[:अंक:] संख्यात्मक वर्ण.

[: ग्राफ:] ऐसे अक्षर जो मुद्रण योग्य और दृश्यमान दोनों हैं। (एक स्थान मुद्रण योग्य है, लेकिन नहीं
दृश्यमान, जबकि एक a दोनों है।)

[: निचला:] लोअरकेस वर्णमाला वर्ण.

[: प्रिंट:] मुद्रण योग्य वर्ण (ऐसे वर्ण जो नियंत्रण वर्ण नहीं हैं।)

[: पंच:] विराम चिन्ह (ऐसे अक्षर जो अक्षर, अंक, नियंत्रण नहीं हैं
वर्ण, या अंतरिक्ष वर्ण)।

[:स्थान:] स्पेस वर्ण (जैसे कि स्पेस, टैब और फ़ॉर्मफ़ीड, कुछ के नाम)।

[: ऊपरी:] अपरकेस वर्णमाला वर्ण.

[: xdigit:] वे वर्ण जो हेक्साडेसिमल अंक हैं.

उदाहरण के लिए, POSIX मानक से पहले, अल्फ़ान्यूमेरिक वर्णों से मिलान करने के लिए, आपके पास होगा
लिखना पड़ा /[A-Za-z0-9]/. यदि आपके वर्ण सेट में अन्य वर्णमाला वर्ण हैं,
यह उनसे मेल नहीं खाएगा, और यदि आपका कैरेक्टर सेट ASCII से भिन्न रूप से मेल खाता है, तो यह
हो सकता है कि यह ASCII अल्फ़ान्यूमेरिक वर्णों से मेल भी न खाए। POSIX वर्ण वर्गों के साथ,
तुम लिख सकते हो /[[:अलनम:]]/, और यह वर्णमाला और संख्यात्मक वर्णों से मेल खाता है
आपका चरित्र सेट, चाहे वह कुछ भी हो।

चरित्र सूचियों में दो अतिरिक्त विशेष अनुक्रम दिखाई दे सकते हैं। ये गैर-ASCII पर लागू होते हैं
वर्ण सेट, जिसमें एकल प्रतीक हो सकते हैं (जिन्हें कहा जाता है)। collating तत्व) वे हैं
एक से अधिक वर्णों के साथ-साथ कई वर्णों का प्रतिनिधित्व किया जाता है
के लिए समकक्ष collating, या छँटाई, प्रयोजन। (उदाहरण के लिए, फ़्रेंच में, एक सादा "ई" और ए
गंभीर-उच्चारण वाले "`" समतुल्य हैं।)

प्रतीकों का संकलन
कोलैटिंग सिंबल एक बहु-वर्णीय कोलैटिंग तत्व है जो संलग्न है [. और .].
उदाहरण के लिए, अगर ch तो फिर, यह एक संपार्श्विक तत्व है [[च।]] एक नियमित अभिव्यक्ति है
जो इस मिलान तत्व से मेल खाता है, जबकि [सी] यह एक नियमित अभिव्यक्ति है
या तो मेल खाता है c or h.

तुल्यता वर्ग
समतुल्यता वर्ग उन वर्णों की सूची के लिए एक स्थानीय-विशिष्ट नाम है
बराबर। नाम संलग्न है [= और =]. उदाहरण के लिए, नाम e हो सकता है
सभी "ई," "´," और "`" का प्रतिनिधित्व करने के लिए उपयोग किया जाता है। इस मामले में, [[=ई=]] एक नियमित है
अभिव्यक्ति जो इनमें से किसी से मेल खाती हो e, या, e`.

ये सुविधाएँ गैर-अंग्रेजी भाषी स्थानों में बहुत मूल्यवान हैं। पुस्तकालय कार्य करता है
कि मूर्ख नियमित अभिव्यक्ति मिलान के लिए उपयोग वर्तमान में केवल POSIX वर्ण को पहचानता है
कक्षाएं; वे मिलान प्रतीकों या तुल्यता वर्गों को नहीं पहचानते हैं।

RSI \y, \B, \<, \>, \s, \S, \w, \W, \`, तथा \' ऑपरेटरों के लिए विशिष्ट हैं मूर्ख; वो हैं
जीएनयू नियमित अभिव्यक्ति पुस्तकालयों में सुविधाओं पर आधारित एक्सटेंशन।

विभिन्न कमांड लाइन विकल्प नियंत्रित करते हैं कि कैसे मूर्ख पात्रों की नियमित व्याख्या करता है
भाव।

कोई विकल्प नहीं
डिफ़ॉल्ट मामले में, मूर्ख POSIX रेगुलर एक्सप्रेशन की सभी सुविधाएं प्रदान करता है
और ऊपर वर्णित जीएनयू रेगुलर एक्सप्रेशन ऑपरेटर।

--posix
केवल POSIX रेगुलर एक्सप्रेशन समर्थित हैं, GNU ऑपरेटर विशेष नहीं हैं।
(जैसे, \w एक शाब्दिक से मेल खाता है w).

--परंपरागत
पारंपरिक यूनिक्स awk रेगुलर एक्सप्रेशन का मिलान किया जाता है. जीएनयू ऑपरेटर नहीं हैं
विशेष और अंतराल अभिव्यक्तियाँ उपलब्ध नहीं हैं। अष्टक द्वारा वर्णित वर्ण
और हेक्साडेसिमल एस्केप अनुक्रमों को शाब्दिक रूप से व्यवहार किया जाता है, भले ही वे प्रतिनिधित्व करते हों
नियमित अभिव्यक्ति मेटाअक्षर.

-- पुनः अंतराल
नियमित अभिव्यक्ति में अंतराल अभिव्यक्ति की अनुमति दें, भले ही --परंपरागत कर दिया गया है
प्रदान की है।

क्रियाएँ
कार्रवाई विवरण ब्रेसिज़ में संलग्न हैं, { और }. क्रिया विवरण में सामान्य बातें शामिल होती हैं
अधिकांश भाषाओं में असाइनमेंट, सशर्त और लूपिंग स्टेटमेंट पाए जाते हैं। संचालक,
नियंत्रण कथन, और उपलब्ध इनपुट/आउटपुट कथन C के अनुरूप हैं।

ऑपरेटरों
घटती प्राथमिकता के क्रम में AWK में ऑपरेटर हैं:

(...) समूहीकरण

$ फ़ील्ड संदर्भ.

++ -- वृद्धि और कमी, उपसर्ग और उपसर्ग दोनों।

^ घातांक (** भी इस्तेमाल किया जा सकता है, और **= असाइनमेंट ऑपरेटर के लिए)।

+ - ! यूनरी प्लस, यूनरी माइनस और तार्किक निषेध।

* / % गुणा, भाग और मापांक।

+ - जोड़ना और घटाना।

अंतरिक्ष स्ट्रिंग संयोजन.

| |& पाइप्ड I/O के लिए लाइन में आओ, छाप, तथा printf.

< > <= >= != ==
नियमित रिलेशनल ऑपरेटर्स.

~ !~ नियमित अभिव्यक्ति मिलान, अस्वीकृत मिलान। ध्यान दें: निरंतर नियमित उपयोग न करें
अभिव्यक्ति (/फू/) ए के बाईं ओर ~ or !~. पर केवल एक का उपयोग करें
दाहिने हाथ की ओर। इजहार /फू/ ~ exp जैसा ही अर्थ है (($0 ~
/फू/) ~ exp)। यह आमतौर पर है नहीं आप क्या करना चाहते हैं.

in सरणी सदस्यता.

&& तार्किक तथा.

|| तार्किक या।

?: सी सशर्त अभिव्यक्ति. इसका स्वरूप है pr1 ? pr2 : pr3. अगर
pr1 सत्य है, अभिव्यक्ति का मूल्य है pr2, अन्यथा यह है pr3.
केवल एक pr2 और pr3 मूल्यांकन किया जाता है.

= += -= *= /= %= ^=
कार्यभार। दोनों पूर्ण असाइनमेंट (था = मूल्य) और ऑपरेटर-असाइनमेंट
(अन्य प्रपत्र) समर्थित हैं.

नियंत्रण वक्तव्य
नियंत्रण कथन इस प्रकार हैं:

if (शर्त) कथन [ अन्य कथन ]
जब (शर्त) कथन
do कथन जब (शर्त)
एसटी (pr1; pr2; pr3) कथन
एसटी (था in सरणी) कथन
तोड़ना
जारी रखने के
हटाना सरणी[अनुक्रमणिका]
हटाना सरणी
निकास [ अभिव्यक्ति ]
{ बयान }
स्विच (अभिव्यक्ति) {
मामला मूल्य|regex : कथन
...
[ चूक: कथन ]
}

मैं / हे वक्तव्य
इनपुट/आउटपुट विवरण इस प्रकार हैं:

बंद करना(पट्टिका [, कैसे]) फ़ाइल, पाइप या सह-प्रक्रिया बंद करें. वैकल्पिक कैसे केवल होना चाहिए
सह-प्रक्रिया के लिए दो-तरफा पाइप के एक छोर को बंद करते समय उपयोग किया जाता है। यह
या तो एक स्ट्रिंग मान होना चाहिए "को" or "से".

लाइन में आओ सेट $0 अगले इनपुट रिकॉर्ड से; तय करना NF, NR, एफ एन आर, RT.

लाइन में आओ <पट्टिका सेट $0 के अगले रिकॉर्ड से पट्टिका; तय करना NF, RT.

लाइन में आओ था सेट था अगले इनपुट रिकॉर्ड से; तय करना NR, एफ एन आर, RT.

लाइन में आओ था <पट्टिका सेट था के अगले रिकॉर्ड से पट्टिका, RT.

आदेश | लाइन में आओ [था]
रन आदेश आउटपुट को या तो पाइप करना $0 or था, जैसा कि ऊपर बताया गया है, और
RT.

आदेश |& लाइन में आओ [था]
रन आदेश एक सह-प्रक्रिया के रूप में या तो आउटपुट को पाइप करना $0 or था,
जैसा कि ऊपर बताया गया है, और RT. सह-प्रक्रियाएँ हैं a मूर्ख विस्तार। (आदेश कर सकते हैं
एक सॉकेट भी हो. उपधारा देखें विशिष्ट पट्टिका नाम, नीचे।)

अगला वर्तमान इनपुट रिकॉर्ड को संसाधित करना बंद करें। अगला इनपुट रिकॉर्ड है
AWK में पहले पैटर्न के साथ पढ़ना और प्रसंस्करण शुरू होता है
कार्यक्रम. इनपुट डेटा के अंत तक पहुंचने पर, मूर्ख कोई भी निष्पादित करता है
अंत नियम)।

अगलीफ़ाइल वर्तमान इनपुट फ़ाइल को संसाधित करना बंद करें। अगला इनपुट रिकॉर्ड पढ़ें
अगली इनपुट फ़ाइल से आता है। फ़ाइल का नाम और अरगिंद अद्यतन हैं,
एफ एन आर 1 पर रीसेट किया जाता है, और प्रसंस्करण पहले पैटर्न के साथ शुरू होता है
AWK कार्यक्रम में. इनपुट डेटा के अंत तक पहुँचने पर, मूर्ख
कोई भी निष्पादित करता है अंत नियम)।

छाप वर्तमान रिकॉर्ड प्रिंट करें. आउटपुट रिकॉर्ड इसके साथ समाप्त हो जाता है
के मूल्य ओआरएस.

छाप expr-सूची भाव मुद्रित करें. प्रत्येक अभिव्यक्ति को के मान से अलग किया जाता है
ओएफएस. आउटपुट रिकॉर्ड को के मान के साथ समाप्त किया जाता है ओआरएस.

छाप expr-सूची >पट्टिका भावों को प्रिंट करें पट्टिका. प्रत्येक अभिव्यक्ति को द्वारा अलग किया गया है
के मूल्य ओएफएस. आउटपुट रिकॉर्ड को के मान के साथ समाप्त किया जाता है
ओआरएस.

printf एफएमटी, expr-सूची प्रारूपित करें और मुद्रित करें। देखना RSI printf कथन, नीचे.

printf एफएमटी, expr-सूची >पट्टिका
प्रारूपित करें और प्रिंट करें पट्टिका.

प्रणाली (सीएमडी-लाइन) आदेश निष्पादित करें सीएमडी-लाइन, और निकास स्थिति लौटाएँ। (शायद यह
गैर-POSIX सिस्टम पर उपलब्ध नहीं होगा।)

फफ्लश([पट्टिका]) खुली आउटपुट फ़ाइल या पाइप से जुड़े किसी भी बफ़र्स को फ्लश करें पट्टिका.
If पट्टिका गायब है या यदि यह शून्य स्ट्रिंग है, तो सभी को खोलकर फ्लश करें
आउटपुट फ़ाइलें और पाइप।

अतिरिक्त आउटपुट पुनर्निर्देशन की अनुमति है छाप और printf.

छाप ... >> पट्टिका
में आउटपुट जोड़ता है पट्टिका.

छाप ... | आदेश
एक पाइप पर लिखता है.

छाप ... |& आदेश
डेटा को सह-प्रक्रिया या सॉकेट में भेजता है। (उपखंड भी देखें विशिष्ट पट्टिका नाम,
नीचे।)

RSI लाइन में आओ कमांड सफलता पर 1, फ़ाइल के अंत में 0 और त्रुटि पर -1 लौटाता है। एक पर
त्रुटि, इरनो समस्या का वर्णन करने वाली एक स्ट्रिंग पर सेट है।

ध्यान दें: दो-तरफा सॉकेट खोलने में विफलता के परिणामस्वरूप एक गैर-घातक त्रुटि वापस आ जाती है
कॉलिंग फ़ंक्शन. यदि पाइप, सह-प्रक्रिया, या सॉकेट का उपयोग कर रहे हैं लाइन में आओया से छाप or
printf एक लूप के भीतर, आप चाहिए उपयोग बंद करे() कमांड के नए उदाहरण बनाने के लिए या
सॉकेट. AWK वापस लौटने पर पाइप, सॉकेट या सह-प्रक्रियाओं को स्वचालित रूप से बंद नहीं करता है
ईओएफ।

RSI printf कथन
के AWK संस्करण printf बयान और स्प्रिंटफ () फ़ंक्शन (नीचे देखें) स्वीकार करें
निम्नलिखित रूपांतरण विनिर्देश प्रारूप:

%c एक ही पात्र. यदि तर्क का उपयोग किया जाता है %c संख्यात्मक है, इसे एक के रूप में माना जाता है
चरित्र और मुद्रित. अन्यथा, तर्क को एक स्ट्रिंग माना जाता है, और
उस स्ट्रिंग का केवल पहला अक्षर मुद्रित होता है।

%d, %i एक दशमलव संख्या (पूर्णांक भाग).

%e, %E प्रपत्र का एक फ़्लोटिंग पॉइंट नंबर [-]d.dddddde[+-]dd%E प्रारूप का उपयोग करता है E
के बजाय e.

%f, %F प्रपत्र का एक फ़्लोटिंग पॉइंट नंबर [-]DDD.dddddd. यदि सिस्टम लाइब्रेरी सपोर्ट करती है
यह, %F भी उपलब्ध है. यह इसके जैसा है %f, लेकिन विशेष के लिए बड़े अक्षरों का उपयोग करता है
"संख्या नहीं" और "अनंत" मान। अगर %F उपलब्ध नहीं है, मूर्ख का उपयोग करता है %f.

%g, %G उपयोग %e or %f रूपांतरण, जो भी छोटा हो, महत्वहीन शून्य के साथ
दबा दिया गया. %G प्रारूप का उपयोग करता है %E के बजाय %e.

%o एक अहस्ताक्षरित अष्टक संख्या (एक पूर्णांक भी)।

%u एक अहस्ताक्षरित दशमलव संख्या (फिर से, एक पूर्णांक)।

%s एक वर्ण स्ट्रिंग.

%x, %X एक अहस्ताक्षरित हेक्साडेसिमल संख्या (एक पूर्णांक)। %X प्रारूप का उपयोग करता है एबीसीडीईएफ के बजाय
एबीसीडीईएफ़.

%% एक एकल % चरित्र; कोई तर्क परिवर्तित नहीं होता.

वैकल्पिक, अतिरिक्त पैरामीटर के बीच स्थित हो सकते हैं % और नियंत्रण पत्र:

गणना$ उपयोग गणनास्वरूपण में इस बिंदु पर 'वाँ तर्क। इसे कहते हैं ए
अवस्था का विनिर्देशक और मुख्य रूप से इसके अनुवादित संस्करणों में उपयोग के लिए है
प्रारूप स्ट्रिंग्स, AWK प्रोग्राम के मूल पाठ में नहीं। यह है एक मूर्ख
विस्तार।

- अभिव्यक्ति को उसके क्षेत्र के भीतर वाम-उचित किया जाना चाहिए।

अंतरिक्ष संख्यात्मक रूपांतरणों के लिए, सकारात्मक मानों के आगे रिक्त स्थान और ऋणात्मक मान लगाएं
माइनस साइन के साथ।

+ चौड़ाई संशोधक (नीचे देखें) से पहले उपयोग किया जाने वाला प्लस चिह्न हमेशा आपूर्ति करने के लिए कहता है
संख्यात्मक रूपांतरणों के लिए चिह्न, भले ही स्वरूपित किया जाने वाला डेटा सकारात्मक हो। +
अंतरिक्ष संशोधक को ओवरराइड करता है।

# कुछ नियंत्रण पत्रों के लिए "वैकल्पिक प्रपत्र" का उपयोग करें। के लिए %o, एक अग्रणी आपूर्ति करें
शून्य। के लिए %x, तथा %X, एक अग्रणी आपूर्ति करें 0x or 0X एक शून्येतर परिणाम के लिए. के लिए %e, %E,
%f और %F, परिणाम में हमेशा एक दशमलव बिंदु होता है। के लिए %g, तथा %G, पीछे चल रहा है
परिणाम से शून्य नहीं हटाया जाता.

0 एक अग्रणी 0 (शून्य) एक ध्वज के रूप में कार्य करता है, जो इंगित करता है कि आउटपुट को पैडेड किया जाना चाहिए
रिक्त स्थान के स्थान पर शून्य. यह केवल संख्यात्मक आउटपुट स्वरूपों पर लागू होता है। यह
ध्वज का प्रभाव केवल तभी होता है जब फ़ील्ड की चौड़ाई मुद्रित किए जाने वाले मान से अधिक हो।

' एक एकल उद्धरण वर्ण निर्देश देता है मूर्ख लोकेल के हज़ारों-विभाजक को सम्मिलित करने के लिए
दशमलव संख्याओं में वर्ण, और स्थान के दशमलव बिंदु का भी उपयोग करना
फ़्लोटिंग पॉइंट प्रारूपों वाला चरित्र। इसके लिए सही स्थानीय समर्थन की आवश्यकता है
सी लाइब्रेरी और वर्तमान लोकेल की परिभाषा में।

चौडाई मैदान को इस चौड़ाई तक गद्देदार बनाया जाना चाहिए। मैदान सामान्यतः गद्देदार होता है
रिक्त स्थान साथ 0 ध्वज, यह शून्य से भरा हुआ है।

.सटीक एक संख्या जो मुद्रण करते समय उपयोग की जाने वाली परिशुद्धता को निर्दिष्ट करती है। के लिए %e, %E, %f और
%F, प्रारूप, यह उन अंकों की संख्या निर्दिष्ट करता है जिनके दाईं ओर आप मुद्रित करना चाहते हैं
दशमलव बिंदु. के लिए %g, तथा %G प्रारूप, यह अधिकतम संख्या निर्दिष्ट करता है
महत्वपूर्ण अंक। के लिए %d, %i, %o, %u, %x, तथा %X प्रारूप, यह निर्दिष्ट करता है
मुद्रित करने के लिए अंकों की न्यूनतम संख्या. के लिए %s, यह अधिकतम संख्या निर्दिष्ट करता है
स्ट्रिंग के अक्षर जिन्हें मुद्रित किया जाना चाहिए।

गतिशील चौडाई और सटीक आईएसओ सी की क्षमताएं printf () दिनचर्या समर्थित हैं. ए *
दोनों में से किसी एक के स्थान पर चौडाई or सटीक विशिष्टताओं के कारण उनके मान लिए जाते हैं
तर्क सूची को printf or स्प्रिंटफ (). डायनामिक के साथ स्थितीय विनिर्देशक का उपयोग करना
चौड़ाई या परिशुद्धता, आपूर्ति करें गणना$ के बाद * प्रारूप स्ट्रिंग में. उदाहरण के लिए,
"%3$*2$.*1$s".

विशिष्ट पट्टिका नाम
दोनों में से I/O पुनर्निर्देशन करते समय छाप or printf किसी फ़ाइल में, या इसके माध्यम से लाइन में आओ एक से
फ़ाइल, मूर्ख आंतरिक रूप से कुछ विशेष फ़ाइल नामों को पहचानता है। ये फ़ाइल नाम पहुंच की अनुमति देते हैं
विरासत में मिले फ़ाइल डिस्क्रिप्टर को खोलने के लिए मूर्खकी मूल प्रक्रिया (आमतौर पर शेल)। इन
डेटा फ़ाइलों को नाम देने के लिए फ़ाइल नामों का उपयोग कमांड लाइन पर भी किया जा सकता है। फ़ाइल नाम हैं:

- मानक इनपुट.

/देव/स्टडीन मानक इनपुट.

/देव/स्टडआउट मानक आउटपुट.

/देव/stderr मानक त्रुटि आउटपुट.

/देव/एफडी/n ओपन फाइल डिस्क्रिप्टर से जुड़ी फाइल n.

ये त्रुटि संदेशों के लिए विशेष रूप से उपयोगी हैं। उदाहरण के लिए:

छाप आप " विस्फोट से उड़ा दिया यह!" > "/देव/stderr"

जबकि आपको अन्यथा उपयोग करना होगा

छाप आप " विस्फोट से उड़ा दिया यह!" | "बिल्ली 1>&2"

निम्नलिखित विशेष फ़ाइल नामों का उपयोग इसके साथ किया जा सकता है |& बनाने के लिए सह-प्रक्रिया ऑपरेटर
टीसीपी/आईपी नेटवर्क कनेक्शन:

/inet/tcp/लपोर्ट/रोस्ट/अनुपात
/inet4/tcp/लपोर्ट/रोस्ट/अनुपात
/inet6/tcp/लपोर्ट/रोस्ट/अनुपात
स्थानीय पोर्ट पर टीसीपी/आईपी कनेक्शन के लिए फ़ाइलें लपोर्ट दूरस्थ होस्ट के लिए रोस्ट रिमोट पर
बंदरगाह अनुपात. के एक पोर्ट का उपयोग करें 0 सिस्टम को एक पोर्ट चुनने के लिए। उपयोग /inet4 मजबूर करने के लिए
एक IPv4 कनेक्शन, और /inet6 IPv6 कनेक्शन को बाध्य करने के लिए। मैदान /इनेट का उपयोग करता है
सिस्टम डिफ़ॉल्ट (संभवतः IPv4)।

/inet/udp/लपोर्ट/रोस्ट/अनुपात
/inet4/udp/लपोर्ट/रोस्ट/अनुपात
/inet6/udp/लपोर्ट/रोस्ट/अनुपात
समान, लेकिन टीसीपी/आईपी के बजाय यूडीपी/आईपी का उपयोग करें।

सांख्यिक कार्य
AWK में निम्नलिखित अंतर्निहित अंकगणितीय कार्य हैं:

atan2 (y, x) का चापस्पर्शज्या लौटें y / x रेडियंस में।

क्योंकि (expr) की कोज्या लौटाएँ expr, जो रेडियन में है।

exp (expr) घातांकीय फलन.

int (expr) पूर्णांक में काट-छाँट करें।

लॉग(expr) प्राकृतिक लघुगणक फ़ंक्शन.

रैंड () एक यादृच्छिक संख्या लौटाएँ N, 0 और 1 के बीच, जैसे कि 0 ≤ N <एक्सएनयूएमएक्स।

पाप (expr) की साइन वापस करें expr, जो रेडियन में है।

वर्ग (expr) का वर्गमूल लौटें expr.

सरैंड ([expr]) उपयोग expr यादृच्छिक संख्या जनरेटर के लिए नए बीज के रूप में। अगर कोई नहीं expr is
बशर्ते, दिन के समय का उपयोग करें। यादृच्छिक के लिए पिछला बीज लौटाएँ
संख्या जनरेटर.

तार कार्य
मूर्ख इसमें निम्नलिखित अंतर्निहित स्ट्रिंग फ़ंक्शन हैं:

एक प्रकार(s [, d [, कैसे]]) स्रोत सरणी में तत्वों की संख्या लौटाएँ s. क्रमबद्ध करें
की सामग्री s का उपयोग मूर्खमूल्यों की तुलना के लिए सामान्य नियम, और
क्रमबद्ध मानों के सूचकांकों को बदलें s अनुक्रमिक के साथ
1 से शुरू होने वाले पूर्णांक। यदि वैकल्पिक गंतव्य सरणी d is
निर्दिष्ट, पहला डुप्लिकेट s में d, और फिर क्रमबद्ध करें d, छोड़ना
स्रोत सरणी के सूचकांक s अपरिवर्तित. वैकल्पिक स्ट्रिंग कैसे
दिशा और तुलना मोड को नियंत्रित करता है। के लिए मान्य मान
कैसे क्या इनमें से कोई भी स्ट्रिंग वैध है? PROCINFO["sorted_in"]. यह
उपयोगकर्ता द्वारा परिभाषित तुलना फ़ंक्शन का नाम भी हो सकता है
में वर्णित PROCINFO["sorted_in"].

असॉर्टी(s [, d [, कैसे]])
स्रोत सरणी में तत्वों की संख्या लौटाएँ s. व्यवहार
के रूप में ही है एक प्रकार(), सिवाय इसके कि array इंडेक्स रहे
सॉर्टिंग के लिए उपयोग किया जाता है, सरणी मानों के लिए नहीं। जब पूरा हो जाए, तो सरणी है
संख्यात्मक रूप से अनुक्रमित, और मान मूल के समान हैं
सूचकांक. मूल मूल्य खो गए हैं; इस प्रकार एक सेकंड प्रदान करें
यदि आप मूल को संरक्षित करना चाहते हैं तो सरणी। का उद्देश्य
वैकल्पिक स्ट्रिंग कैसे जैसा इसमें वर्णित है वैसा ही है एक प्रकार() ऊपर।

जेनसब(r, s, h [, t]) लक्ष्य स्ट्रिंग खोजें t रेगुलर एक्सप्रेशन के मिलान के लिए
r. अगर h से प्रारंभ होने वाली एक स्ट्रिंग है g or G, फिर सभी को बदलें
के मैच r साथ में s। अन्यथा, h एक संख्या है जो दर्शाती है
का मेल r बदलने के लिए। अगर t आपूर्ति नहीं की गई है, उपयोग करें $0 बजाय.
प्रतिस्थापन पाठ के भीतर s, क्रम n, जहां n एक अंक है
1 से 9 तक, केवल मेल खाने वाले पाठ को इंगित करने के लिए उपयोग किया जा सकता है
la n'वें कोष्ठक में उपअभिव्यक्ति। क्रम \0 का प्रतिनिधित्व करता है
संपूर्ण मिलान किया गया पाठ, जैसा कि चरित्र करता है &। भिन्न विषय()
और जीएसयूबी(), संशोधित स्ट्रिंग को परिणाम के रूप में लौटाया जाता है
फ़ंक्शन, और मूल लक्ष्य स्ट्रिंग है नहीं बदल दिया है.

जीएसयूबी (r, s [, t]) नियमित अभिव्यक्ति से मेल खाने वाले प्रत्येक सबस्ट्रिंग के लिए r स्ट्रिंग में
t, स्ट्रिंग को प्रतिस्थापित करें s, और की संख्या लौटाएँ
प्रतिस्थापन. अगर t आपूर्ति नहीं की गई है, उपयोग करें $0. एक & में
प्रतिस्थापन पाठ को उस पाठ से बदल दिया जाता है जो वास्तव में था
मिलान हुआ. उपयोग \& एक शाब्दिक पाने के लिए &. (इसे इस प्रकार टाइप किया जाना चाहिए
"\\&"; देख गॉक: प्रभावी AWK प्रोग्रामिंग विस्तृत चर्चा के लिए
के लिए नियमों का &के प्रतिस्थापन पाठ में और बैकस्लैश
विषय(), जीएसयूबी(), तथा जेनसब().)

अनुक्रमणिका(s, t) स्ट्रिंग का सूचकांक लौटाएँ t स्ट्रिंग में s, या 0 यदि t नहीं है
वर्तमान। (इसका तात्पर्य यह है कि चरित्र सूचकांक एक से शुरू होते हैं।) यह
regexp स्थिरांक का उपयोग करना एक घातक त्रुटि है t.

लंबाई ([s]) स्ट्रिंग की लंबाई लौटाएँ s, या की लंबाई $0 if s नहीं है
आपूर्ति की गई. एक गैर-मानक एक्सटेंशन के रूप में, एक सरणी तर्क के साथ,
लंबाई () सरणी में तत्वों की संख्या लौटाता है।

मिलान(s, r [, a]) में स्थिति लौटाएँ s जहां नियमित अभिव्यक्ति r होता है, या
0 यदि r मौजूद नहीं है, और का मान निर्धारित करें आर START और लम्बाई.
ध्यान दें कि तर्क क्रम वही है जो इसके लिए है ~ ऑपरेटर:
str ~ re. यदि सरणी a उपलब्ध है, a साफ़ किया जाता है और फिर तत्व
1 के माध्यम से n के अंशों से भरे हुए हैं s जो मेल खाता हो
संगत कोष्ठक में उपअभिव्यक्ति r. 0'वाँ तत्व
of a का भाग सम्मिलित है s संपूर्ण नियमित से मेल खाता है
अभिव्यक्ति r. सबस्क्रिप्ट a[n, "शुरू करना"], तथा a[n, "लंबाई"]
क्रमशः स्ट्रिंग और लंबाई में प्रारंभिक सूचकांक प्रदान करें,
प्रत्येक मिलान सबस्ट्रिंग का।

पैटस्प्लिट(s, a [, r [, सितम्बर]])
स्ट्रिंग को विभाजित करें s सरणी में a और विभाजक सरणी सितम्बर
नियमित अभिव्यक्ति पर r, और फ़ील्ड की संख्या लौटाएँ।
तत्व मान के भाग हैं s जो मेल खा गया r। का मूल्य
सितंबर[i] वह विभाजक है जो सामने दिखाई देता है a[i+1]. अगर r
छोड़ा गया है, एफपीएटी इसके स्थान पर प्रयोग किया जाता है। सरणियाँ a और सितम्बर रहे
पहले साफ़ किया. बँटवारा फ़ील्ड बँटवारे के समान ही व्यवहार करता है
साथ में एफपीएटी, ऊपर वर्णित है।

विभाजित करना(s, a [, r [, सितम्बर]])
स्ट्रिंग को विभाजित करें s सरणी में a और विभाजक सरणी सितम्बर
नियमित अभिव्यक्ति पर r, और फ़ील्ड की संख्या लौटाएँ। अगर
r छोड़ा गया है, FS इसके स्थान पर प्रयोग किया जाता है। सरणियाँ a और सितम्बर रहे
पहले साफ़ किया. सितंबर[i] फ़ील्ड विभाजक से मेल खाता है r
के बीच a[i] और a[i+1]. अगर r एक एकल स्थान है, फिर अग्रणी
रिक्त स्थान में s अतिरिक्त सरणी तत्व में चला जाता है सितम्बर[0] और
अनुगामी रिक्त स्थान अतिरिक्त सरणी तत्व में चला जाता है सितंबर[n],
जहां n का वापसी मूल्य है विभाजित करना(s, a, r, सितम्बर). विभाजन
ऊपर वर्णित फ़ील्ड विभाजन के समान व्यवहार करता है।

sprintf (fmt, expr-सूची) छाप expr-सूची के अनुसार fmt, और परिणामी स्ट्रिंग वापस करें।

स्ट्रेटोनम(str) पहचानें str, और इसका संख्यात्मक मान लौटाएँ। अगर str ए से शुरू होता है
प्रमुख 0, इसे एक अष्टक संख्या के रूप में मानें। अगर str ए से शुरू होता है
प्रमुख 0x or 0X, इसे हेक्साडेसिमल संख्या के रूप में मानें। अन्यथा,
मान लीजिए कि यह एक दशमलव संख्या है.

विषय(r, s [, t]) बिलकुल इसके जैसा जीएसयूबी(), लेकिन केवल पहली मिलान वाली सबस्ट्रिंग को बदलें।

पदार्थ (s, i [, n]) ज्यादा से ज्यादा वापस करें n-अक्षर उपस्ट्रिंग का s पर शुरू i. अगर n
छोड़ दिया गया है, शेष का उपयोग करें s.

नीचा करना(str) स्ट्रिंग की एक प्रति लौटाएँ str, सभी बड़े अक्षरों के साथ
in str उनके संबंधित लोअरकेस समकक्षों में अनुवादित।
गैर-वर्णमाला वर्णों को अपरिवर्तित छोड़ दिया गया है।

टौपर (str) स्ट्रिंग की एक प्रति लौटाएँ str, सभी छोटे अक्षरों के साथ
in str उनके संगत अपरकेस समकक्षों में अनुवादित।
गैर-वर्णमाला वर्णों को अपरिवर्तित छोड़ दिया गया है।

मूर्ख मल्टीबाइट जागरूक है। इस का मतलब है कि सूचकांक (), लंबाई (), पदार्थ () और मिलान() सारा काम
वर्णों के संदर्भ में, बाइट्स के संदर्भ में नहीं।

पहर कार्य
चूँकि AWK प्रोग्राम का प्राथमिक उपयोग उन लॉग फ़ाइलों को संसाधित करना है जिनमें समय होता है
स्टाम्प जानकारी, मूर्ख समय टिकट प्राप्त करने के लिए निम्नलिखित कार्य प्रदान करता है
उन्हें स्वरूपित करना।

mktime(datepec)
मोड़ datepec द्वारा लौटाए गए उसी फॉर्म के टाइम स्टैम्प में सिस्टमटाइम(), तथा
परिणाम वापस करो. datepec फॉर्म की एक स्ट्रिंग है YYYY MM DD HH MM एसएस[
डीएसटी]. स्ट्रिंग की सामग्री छह या सात संख्याओं का प्रतिनिधित्व करती है
क्रमशः शताब्दी सहित पूरा वर्ष, माह 1 से 12 तक का दिन
1 से 31 तक महीना, 0 से 23 तक दिन का घंटा, 0 से XNUMX तक मिनट
59, 0 से 60 तक दूसरा, और एक वैकल्पिक डेलाइट सेविंग फ़्लैग। मूल्य
इन संख्याओं का निर्दिष्ट सीमाओं के भीतर होना आवश्यक नहीं है; उदाहरण के लिए, एक घंटा
-1 का मतलब आधी रात से 1 घंटा पहले है। मूल-शून्य ग्रेगोरियन कैलेंडर है
मान लिया गया है, वर्ष 0 से पहले वर्ष 1 और वर्ष 1 से पहले वर्ष -0। समय है
स्थानीय समय क्षेत्र में माना जाता है। यदि डेलाइट सेविंग फ़्लैग सकारात्मक है,
समय को डेलाइट सेविंग टाइम माना जाता है; यदि शून्य है, तो समय माना जाता है
मानक समय हो; और यदि नकारात्मक (डिफ़ॉल्ट), एमकेटाइम () निर्धारित करने का प्रयास करता है
क्या डेलाइट सेविंग टाइम निर्दिष्ट समय के लिए प्रभावी है। अगर datepec
इसमें पर्याप्त तत्व नहीं हैं या यदि परिणामी समय सीमा से बाहर है,
एमकेटाइम () रिटर्न -1.

स्ट्रफ़टाइम([प्रारूप [, टाइमस्टैम्प[, यूटीसी-ध्वज]]])
का गठन टाइमस्टैम्प में विशिष्टता के अनुसार प्रारूप. अगर यूटीसी-ध्वज is
मौजूद है और गैर-शून्य या गैर-शून्य है, परिणाम यूटीसी में है, अन्यथा परिणाम
स्थानीय समय में है. टाइमस्टैम्प द्वारा लौटाए गए स्वरूप के समान होना चाहिए
सिस्टमटाइम(). अगर टाइमस्टैम्प गायब है, दिन का वर्तमान समय उपयोग किया जाता है। अगर प्रारूप
गायब है, के आउटपुट के बराबर एक डिफ़ॉल्ट प्रारूप डेटा(1) का प्रयोग किया जाता है।
डिफ़ॉल्ट प्रारूप में उपलब्ध है PROCINFO["strftime"]. के लिए विशिष्टता देखें
la स्ट्रैटटाइम () गारंटीशुदा प्रारूप रूपांतरणों के लिए आईएसओ सी में कार्य करें
उपलब्ध होने के लिए।

सिस्टमटाइम() युग के बाद से सेकंड की संख्या के रूप में दिन का वर्तमान समय लौटाएँ
(1970-01-01 00:00:00 यूटीसी पॉज़िक्स सिस्टम पर)।

बिट जोड़तोड़ कार्य
मूर्ख निम्नलिखित बिट मैनिपुलेशन फ़ंक्शंस की आपूर्ति करता है। वे डबल परिवर्तित करके काम करते हैं-
सटीक फ़्लोटिंग पॉइंट मान uintmax_t पूर्णांक, ऑपरेशन करना, और फिर
परिणाम को वापस फ़्लोटिंग पॉइंट में परिवर्तित करना। कार्य हैं:

और(v1, v2 [,...]) तर्क सूची में दिए गए मानों को बिटवाइज़ AND लौटाएँ।
कम से कम दो तो होने ही चाहिए.

शिकायत(लहर) का बिटवाइज़ पूरक लौटाएँ लहर.

lशिफ्ट(लहर, गणना) का मान लौटाते हैं लहर, द्वारा बायीं ओर स्थानांतरित कर दिया गया गणना बिट्स।

या(v1, v2 [,...]) तर्क सूची में दिए गए मानों को बिटवाइज़ या लौटाएँ।
कम से कम दो तो होने ही चाहिए.

rshift(लहर, गणना) का मान लौटाते हैं लहर, दाईं ओर स्थानांतरित हो गया गणना बिट्स।

एक्सओआर(v1, v2 [,...]) तर्क सूची में दिए गए मानों का बिटवाइज़ XOR लौटाएँ।
कम से कम दो तो होने ही चाहिए.

प्रकार समारोह
निम्नलिखित फ़ंक्शन बहुआयामी सरणियों के साथ उपयोग के लिए है।

इस सारणी(x)
यदि सत्य हो तो लौटें x एक सरणी है, अन्यथा गलत है।

अंतर्राष्ट्रीयकरण कार्य
स्ट्रिंग्स का अनुवाद करने के लिए आपके AWK प्रोग्राम के भीतर निम्नलिखित कार्यों का उपयोग किया जा सकता है
चलने के समय पर। पूरी जानकारी के लिए देखें गॉक: प्रभावी AWK प्रोग्रामिंग.

बाइंडटेक्स्टडोमेन(डायरेक्टरी [, डोमेन])
वह निर्देशिका निर्दिष्ट करें जहां मूर्ख ढूंढता है .gmo फ़ाइलें, यदि वे नहीं करेंगे या नहीं
``मानक'' स्थानों पर नहीं रखा जा सकता (उदाहरण के लिए, परीक्षण के दौरान)। यह लौट आता है
वह निर्देशिका जहां डोमेन ``बाध्य है।''
डिफ़ॉल्ट डोमेन का मूल्य है टेक्स्टडोमेन. अगर डायरेक्टरी शून्य स्ट्रिंग है
(""), फिर बाइंडटेक्स्टडोमेन() दिए गए के लिए वर्तमान बाइंडिंग लौटाता है डोमेन.

dcgettext(स्ट्रिंग [, डोमेन [, वर्ग]])
का अनुवाद लौटाएँ स्ट्रिंग टेक्स्ट डोमेन में डोमेन स्थानीय श्रेणी के लिए
वर्ग. के लिए डिफ़ॉल्ट मान डोमेन का वर्तमान मूल्य है टेक्स्टडोमेन
के लिए डिफ़ॉल्ट मान वर्ग is "LC_MESSAGES".
यदि आप इसके लिए कोई मूल्य प्रदान करते हैं वर्ग, यह ज्ञात में से एक के बराबर एक स्ट्रिंग होनी चाहिए
स्थानीय श्रेणियाँ वर्णित हैं गॉक: प्रभावी AWK प्रोग्रामिंग. आपको भी अवश्य करना चाहिए
एक टेक्स्ट डोमेन प्रदान करें. उपयोग टेक्स्टडोमेन यदि आप वर्तमान डोमेन का उपयोग करना चाहते हैं।

dcngettext(string1, string2, संख्या [, डोमेन [, वर्ग]])
के लिए प्रयुक्त बहुवचन रूप लौटाएँ संख्या के अनुवाद का string1 और string2 in
टेक्स्ट डोमेन डोमेन स्थानीय श्रेणी के लिए वर्ग. के लिए डिफ़ॉल्ट मान डोमेन is
का वर्तमान मूल्य टेक्स्टडोमेन. के लिए डिफ़ॉल्ट मान वर्ग is "LC_MESSAGES".
यदि आप इसके लिए कोई मूल्य प्रदान करते हैं वर्ग, यह ज्ञात में से एक के बराबर एक स्ट्रिंग होनी चाहिए
स्थानीय श्रेणियाँ वर्णित हैं गॉक: प्रभावी AWK प्रोग्रामिंग. आपको भी अवश्य करना चाहिए
एक टेक्स्ट डोमेन प्रदान करें. उपयोग टेक्स्टडोमेन यदि आप वर्तमान डोमेन का उपयोग करना चाहते हैं।

उपयोगकर्ता परिभाषित कार्य


AWK में फ़ंक्शंस को इस प्रकार परिभाषित किया गया है:

समारोह नाम(प्राचल सूची) { बयान }

फ़ंक्शंस तब निष्पादित होते हैं जब उन्हें अभिव्यक्तियों के भीतर से या तो पैटर्न में बुलाया जाता है
कार्रवाई. फ़ंक्शन कॉल में दिए गए वास्तविक पैरामीटर का उपयोग इंस्टेंट करने के लिए किया जाता है
फ़ंक्शन में औपचारिक पैरामीटर घोषित किए गए। ऐरे को संदर्भ द्वारा पारित किया जाता है, अन्य
वेरिएबल को मान द्वारा पारित किया जाता है।

चूँकि फ़ंक्शंस मूल रूप से AWK भाषा का हिस्सा नहीं थे, स्थानीय के लिए प्रावधान
वेरिएबल्स अनाड़ी हैं: उन्हें पैरामीटर सूची में अतिरिक्त पैरामीटर के रूप में घोषित किया गया है।
सम्मेलन में अतिरिक्त रिक्त स्थान द्वारा स्थानीय चर को वास्तविक मापदंडों से अलग करना है
पैरामीटर सूची. उदाहरण के लिए:

समारोह एफ(पी, q, a, b) # a और b रहे स्थानीय
{
...
}

/एबीसी/ { ... ; च(1, 2) ; ... }

फ़ंक्शन कॉल में बाएं कोष्ठक को फ़ंक्शन का तुरंत अनुसरण करना आवश्यक है
नाम, बिना किसी हस्तक्षेप रिक्त स्थान के। इससे वाक्यात्मक अस्पष्टता से बचा जा सकता है
संयोजन संचालक. यह प्रतिबंध सूचीबद्ध अंतर्निहित कार्यों पर लागू नहीं होता है
ऊपर।

फ़ंक्शन एक-दूसरे को कॉल कर सकते हैं और पुनरावर्ती हो सकते हैं। फ़ंक्शन पैरामीटर स्थानीय के रूप में उपयोग किए जाते हैं
फ़ंक्शन के आह्वान पर वेरिएबल को शून्य स्ट्रिंग और संख्या शून्य से प्रारंभ किया जाता है।

उपयोग वापसी expr किसी फ़ंक्शन से कोई मान वापस करने के लिए. यदि नहीं, तो वापसी मान अपरिभाषित है
मान प्रदान किया गया है, या यदि फ़ंक्शन अंत में "गिरकर" वापस आता है।

एक के रूप में मूर्ख विस्तार, कार्यों को अप्रत्यक्ष रूप से कहा जा सकता है। ऐसा करने के लिए, का नाम असाइन करें
फ़ंक्शन को एक स्ट्रिंग के रूप में, एक वेरिएबल में कॉल किया जाना है। फिर वेरिएबल का उपयोग इस प्रकार करें जैसे कि यह हो
एक फ़ंक्शन का नाम था, जिसके पहले एक लगा हुआ था @ संकेत, जैसे:
समारोह मायफंक ()
{
छाप "मायफंक बुलाया"
...
}

{ ...
the_func = "मायफंक"
@the_func() # कॉल पूज्य गुरुदेव के मार्गदर्शन से संपन्न कर सकते हैं - the_func सेवा मेरे myfunc
...
}
संस्करण 4.1.2 के अनुसार, यह उपयोगकर्ता-परिभाषित फ़ंक्शंस, अंतर्निहित फ़ंक्शंस और के साथ काम करता है
विस्तार कार्य.

If --लिंट दे दी गयी, मूर्ख पार्स समय पर अपरिभाषित कार्यों के लिए कॉल के बारे में चेतावनी देता है,
रन टाइम के बजाय. रन टाइम पर एक अपरिभाषित फ़ंक्शन को कॉल करना एक घातक त्रुटि है।

शब्द समारोह के स्थान पर उपयोग किया जा सकता है समारोह, हालाँकि यह अस्वीकृत है।

गतिशील लोड हो रहा है नया कार्य


आप रनिंग में गतिशील रूप से नए अंतर्निहित फ़ंक्शन जोड़ सकते हैं मूर्ख के साथ दुभाषिया
@भार कथन। संपूर्ण विवरण इस मैनुअल पृष्ठ के दायरे से परे हैं; देखना गॉक:
प्रभावी AWK प्रोग्रामिंग.

सिग्नल


RSI मूर्ख प्रोफाइलर दो सिग्नल स्वीकार करता है। सिगुसर1 इसके कारण यह प्रोफ़ाइल और फ़ंक्शन को डंप कर देता है
प्रोफ़ाइल फ़ाइल में स्टैक को कॉल करें, जो या तो है awkprof.out, या जो भी फ़ाइल का नाम दिया गया था
साथ --प्रोफाइल विकल्प। फिर यह चलता रहता है। उच्छ्वास करो का कारण बनता है मूर्ख डंप करने के लिए
प्रोफ़ाइल और फ़ंक्शन कॉल स्टैक और फिर बाहर निकलें।

अंतर्राष्ट्रीयकरण


स्ट्रिंग स्थिरांक दोहरे उद्धरण चिह्नों में संलग्न वर्णों के अनुक्रम हैं। गैर-अंग्रेजी में
बोलने के वातावरण में, आवश्यकतानुसार AWK प्रोग्राम में स्ट्रिंग्स को चिह्नित करना संभव है
स्थानीय प्राकृतिक भाषा में अनुवाद. ऐसे स्ट्रिंग्स को AWK प्रोग्राम में चिह्नित किया जाता है
एक अग्रणी अंडरस्कोर ("_")। उदाहरण के लिए,

मूर्ख 'शुरू { छाप "नमस्ते, दुनिया" }'

हमेशा प्रिंट करता है नमस्ते, विश्व। परंतु,

मूर्ख 'शुरू { छाप _"नमस्ते, दुनिया" }'

छाप सकता है , सुप्रभात मोंडे फ्रांस में।

स्थानीयकृत AWK प्रोग्राम के निर्माण और संचालन में कई चरण शामिल हैं।

1। एक जोड़ें शुरू को मान निर्दिष्ट करने की कार्रवाई टेक्स्टडोमेन टेक्स्ट डोमेन सेट करने के लिए वेरिएबल
आपके प्रोग्राम से जुड़े नाम के लिए:

शुरू { टेक्स्टडोमेन = "माइप्रोग" }

यह अनुमति देता है मूर्ख खोजने के लिए .gmo आपके प्रोग्राम से संबद्ध फ़ाइल. इस के बिना
कदम है, मूर्ख का उपयोग करता है संदेश टेक्स्ट डोमेन, जिसमें संभवतः अनुवाद शामिल नहीं है
अपने कार्यक्रम के लिए।

2. उन सभी स्ट्रिंग्स को चिह्नित करें जिनका अनुवाद प्रमुख अंडरस्कोर के साथ किया जाना चाहिए।

3. यदि आवश्यक हो, तो उपयोग करें dcgettext() और / या बाइंडटेक्स्टडोमेन() आपके प्रोग्राम में कार्य करता है,
के रूप में उपयुक्त।

4. चलाना मूर्ख --जेन-पॉट -f myprog.awk > myprog.pot एक उत्पन्न करने के लिए ।मटका आपके लिए फ़ाइल
कार्यक्रम.

5. उचित अनुवाद प्रदान करें, और तदनुरूप निर्माण और स्थापित करें .gmo फाइलें.

अंतर्राष्ट्रीयकरण सुविधाओं का पूर्ण विवरण में वर्णन किया गया है गॉक: प्रभावी AWK
प्रोग्रामिंग.

POSIX संगतता


के लिए एक प्राथमिक लक्ष्य मूर्ख POSIX मानक के साथ-साथ संगतता है
ब्रायन कर्निघन का नवीनतम संस्करण awk. इस कोने तक, मूर्ख निम्नलिखित को सम्मिलित करता है
उपयोगकर्ता को दिखाई देने वाली विशेषताएँ जिनका वर्णन AWK पुस्तक में नहीं किया गया है, लेकिन वे ब्रायन का हिस्सा हैं
कर्निघन का संस्करण awk, और POSIX मानक में हैं।

पुस्तक इंगित करती है कि कमांड लाइन वेरिएबल असाइनमेंट तब होता है awk अन्यथा ऐसा होता
तर्क को एक फ़ाइल के रूप में खोलें, जो इसके बाद है शुरू नियम क्रियान्वित है. हालाँकि, में
पहले के कार्यान्वयन, जब ऐसा असाइनमेंट किसी फ़ाइल नाम से पहले दिखाई देता था, तो
असाइनमेंट होगा से पहले la शुरू नियम चलाया गया. आवेदनों पर निर्भर रहना पड़ा
यह सुविधा।" कब awk इसके दस्तावेज़ीकरण से मेल खाने के लिए इसे बदल दिया गया था -v के लिए विकल्प
अनुप्रयोगों को समायोजित करने के लिए प्रोग्राम निष्पादन से पहले वेरिएबल निर्दिष्ट करना जोड़ा गया था
पुराने आचरण पर निर्भर था। (इस सुविधा पर दोनों बेल द्वारा सहमति व्यक्त की गई थी
प्रयोगशालाएँ और जीएनयू डेवलपर्स।)

तर्क संसाधित करते समय, मूर्ख के अंत का संकेत देने के लिए विशेष विकल्प "--" का उपयोग करता है
तर्क. संगतता मोड में, यह चेतावनी देता है लेकिन अन्यथा अपरिभाषित विकल्पों को अनदेखा कर देता है।
सामान्य ऑपरेशन में, ऐसे तर्कों को संसाधित करने के लिए AWK प्रोग्राम को भेज दिया जाता है।

AWK पुस्तक रिटर्न वैल्यू को परिभाषित नहीं करती है सरंड (). POSIX मानक में यह है
यादृच्छिक संख्या अनुक्रमों पर नज़र रखने की अनुमति देने के लिए, वह बीज लौटाएं जिसका वह उपयोग कर रहा था।
इसलिए सरंड () in मूर्ख साथ ही उसका वर्तमान बीज भी लौटाता है।

अन्य नई सुविधाएँ हैं: एकाधिक का उपयोग -f विकल्प (एमकेएस से) awk); घेरना सारणी;
la \a, तथा \v एस्केप सीक्वेंस (मूल रूप से किया गया) मूर्ख और वापस बेल में डाल दिया गया
प्रयोगशालाएँ संस्करण); नीचा करना() और टॉपर() अंतर्निहित फ़ंक्शन (बेल से)।
प्रयोगशालाएँ संस्करण); और आईएसओ सी रूपांतरण विनिर्देश printf (पहले किया गया
बेल लेबोरेटरीज संस्करण)।

ऐतिहासिक विशेषताएं


ऐतिहासिक AWK कार्यान्वयन की एक विशेषता यह है कि मूर्ख समर्थन: यह संभव है
फोन करना लंबाई () अंतर्निहित फ़ंक्शन न केवल बिना किसी तर्क के, बल्कि बिना भी
कोष्ठक! इस प्रकार,

a = लंबाई # पवित्र अल्गोलो 60, बैटमैन!

दोनों में से किसी एक के समान है

a = लंबाई ()
a = लंबाई($0)

इस सुविधा का उपयोग करना ख़राब अभ्यास है, और मूर्ख यदि इसके उपयोग के बारे में चेतावनी जारी करता है --लिंट is
कमांड लाइन पर निर्दिष्ट।

जीएनयू एक्सटेंशन


मूर्ख POSIX में बहुत अधिक संख्या में एक्सटेंशन हैं awk. इसमें उनका वर्णन किया गया है
अनुभाग। यहां वर्णित सभी एक्सटेंशनों को लागू करके अक्षम किया जा सकता है मूर्ख साथ
--परंपरागत or --posix विकल्प.

की निम्नलिखित विशेषताएं मूर्ख POSIX में उपलब्ध नहीं हैं awk.

· के माध्यम से नामित फ़ाइलों के लिए कोई पथ खोज नहीं की जाती है -f विकल्प। इसलिए AWKPATH
पर्यावरण चर विशेष नहीं है.

· फ़ाइल समावेशन करने की कोई सुविधा नहीं है (मूर्ख's @शामिल करना तंत्र)।

· सी में लिखे गए नए कार्यों को गतिशील रूप से जोड़ने की कोई सुविधा नहीं है (मूर्ख's @भार
तंत्र)।

· \x बचने का क्रम। (अक्षम के साथ --posix.)

· बाद में लाइनें जारी रखने की क्षमता ? और :. (अक्षम के साथ --posix.)

· AWK कार्यक्रमों में ऑक्टल और हेक्साडेसिमल स्थिरांक।

· अरगिंद, बिनमोड, इरनो, एक प्रकार का वृक्ष, RT और टेक्स्टडोमेन चर विशेष नहीं हैं.

· मामले की अनदेखी करें परिवर्तनीय और इसके दुष्प्रभाव उपलब्ध नहीं हैं।

· फ़ील्डविड्थ परिवर्तनीय और निश्चित-चौड़ाई वाले क्षेत्र का विभाजन।

· एफपीएटी फ़ील्ड मानों के आधार पर चर और फ़ील्ड विभाजन।

· PROCINFO सरणी उपलब्ध नहीं है.

· का उपयोग RS एक नियमित अभिव्यक्ति के रूप में।

· I/O पुनर्निर्देशन के लिए उपलब्ध विशेष फ़ाइल नाम पहचाने नहीं गए हैं।

· |& सह-प्रक्रियाएँ बनाने के लिए ऑपरेटर।

· आरंभफ़ाइल और अंत फ़ाइल विशेष पैटर्न उपलब्ध नहीं हैं.

· शून्य स्ट्रिंग का मान के रूप में उपयोग करके अलग-अलग वर्णों को विभाजित करने की क्षमता FS,
और तीसरे तर्क के रूप में विभाजित करें().

· एक वैकल्पिक चौथा तर्क विभाजित करें() विभाजक पाठ प्राप्त करने के लिए.

· वैकल्पिक दूसरा तर्क बंद करे() समारोह.

· वैकल्पिक तीसरा तर्क मिलान() समारोह.

· स्थितीय विनिर्देशकों का उपयोग करने की क्षमता printf और स्प्रिंटफ ().

· किसी सरणी को पास करने की क्षमता लंबाई ().

· और(), एक प्रकार(), असॉर्टी(), बाइंडटेक्स्टडोमेन(), शिकायत(), dcgettext(), dcngettext(),
जेनसब(), एलशिफ्ट(), एमकेटाइम (), या(), पैटस्प्लिट(), rshift(), स्ट्रैटटाइम (), स्ट्रेटोनम(),
सिस्टमटाइम() और एक्सओआर() कार्य करता है.

· स्थानीयकृत तार.

AWK पुस्तक रिटर्न वैल्यू को परिभाषित नहीं करती है बंद करे() समारोह. मूर्ख's बंद करे()
से मान लौटाता है fclose(3), या pबंद करें(3), आउटपुट फ़ाइल या पाइप को बंद करते समय,
क्रमश। यह इनपुट पाइप को बंद करते समय प्रक्रिया की निकास स्थिति लौटाता है।
यदि नामित फ़ाइल, पाइप या सह-प्रक्रिया को a के साथ नहीं खोला गया है तो रिटर्न मान -1 है
पुनर्निर्देशन।

. मूर्ख के साथ लगाया जाता है --परंपरागत विकल्प, यदि fs के लिए तर्क -F विकल्प है
"टी", फिर FS टैब वर्ण पर सेट है. टाइपिंग पर ध्यान दें मूर्ख -एफ\टी ... बस कारण बनता है
शेल "t" को उद्धृत करता है और "\t" को पास नहीं करता है -F विकल्प। चूंकि यह एक है
बल्कि बदसूरत विशेष मामला, यह डिफ़ॉल्ट व्यवहार नहीं है। यह व्यवहार भी नहीं करता
होता है अगर --posix निर्दिष्ट किया गया है. वास्तव में फ़ील्ड के रूप में एक टैब वर्ण प्राप्त करने के लिए
विभाजक, सिंगल कोट्स का उपयोग करना सबसे अच्छा है: मूर्ख -एफ'\टी' ....

वातावरण चर


RSI AWKPATH पर्यावरण चर का उपयोग निर्देशिकाओं की सूची प्रदान करने के लिए किया जा सकता है मूर्ख
के माध्यम से नामित फ़ाइलों की तलाश करते समय खोजता है -f, --फ़ाइल, -i और --शामिल विकल्प। अगर
प्रारंभिक खोज विफल हो जाती है, पथ जोड़ने के बाद फिर से खोजा जाता है .अरे फ़ाइल नाम के लिए.

RSI अवक्लिबपथ पर्यावरण चर का उपयोग निर्देशिकाओं की सूची प्रदान करने के लिए किया जा सकता है मूर्ख
के माध्यम से नामित फ़ाइलों की तलाश करते समय खोजता है -l और --भार विकल्प.

RSI GAWK_READ_TIMEOUT टाइमआउट निर्दिष्ट करने के लिए पर्यावरण चर का उपयोग किया जा सकता है
टर्मिनल, पाइप या दो-तरफ़ा संचार सहित इनपुट पढ़ने के लिए मिलीसेकंड
सॉकेट।

सॉकेट के माध्यम से किसी दूरस्थ होस्ट से कनेक्शन के लिए, GAWK_SOCK_RETRIES की संख्या को नियंत्रित करता है
पुनः प्रयास करें, और GAWK_MSEC_SLEEP और पुनः प्रयास के बीच का अंतराल। अंतराल में है
मिलीसेकंड. उन सिस्टमों पर जो समर्थन नहीं करते तुम सो जाओ(3), मान को एक तक पूर्णांकित किया गया है
सेकंड की अभिन्न संख्या.

If POSIXLY_CORRECT तब पर्यावरण में मौजूद है मूर्ख बिलकुल वैसे ही व्यवहार करता है जैसे --posix था
कमांड लाइन पर निर्दिष्ट किया गया है। अगर --लिंट निर्दिष्ट किया गया है, मूर्ख एक चेतावनी जारी करता है
इस आशय का संदेश.

बाहर निकलें स्थिति


अगर निकास तब कथन का उपयोग किसी मान के साथ किया जाता है मूर्ख दिए गए संख्यात्मक मान के साथ बाहर निकलता है
यह करने के लिए.

अन्यथा, यदि निष्पादन के दौरान कोई समस्या न हो, मूर्ख C के मान के साथ बाहर निकलता है
स्थिर EXIT_SUCCESS. यह आमतौर पर शून्य है.

यदि कोई त्रुटि होती है, मूर्ख C स्थिरांक के मान के साथ बाहर निकलता है EXIT_FAILURE। ये है
आमतौर पर एक.

If मूर्ख एक घातक त्रुटि के कारण बाहर निकलता है, निकास स्थिति 2 है। गैर-POSIX सिस्टम पर, यह
मान को मैप किया जा सकता है EXIT_FAILURE.

VERSION जानकारी


यह मैन पेज दस्तावेज़ मूर्ख, संस्करण 4.1

लेखक


UNIX का मूल संस्करण awk अल्फ्रेड अहो, पीटर द्वारा डिजाइन और कार्यान्वित किया गया था
वेनबर्गर, और बेल लेबोरेटरीज के ब्रायन कर्निघन। ब्रायन कर्निघन जारी है
इसे बनाए रखें और बढ़ाएं।

फ्री सॉफ्टवेयर फाउंडेशन के पॉल रुबिन और जे फेनलासन ने लिखा मूर्ख, संगत होना
के मूल संस्करण के साथ awk सातवें संस्करण UNIX में वितरित। जॉन वुड्स
अनेक बग सुधारों में योगदान दिया। डेविड ट्रूमैन, अर्नोल्ड रॉबिंस के योगदान के साथ,
बनाया गया मूर्ख UNIX के नए संस्करण के साथ संगत awk. अर्नोल्ड रॉबिंस वर्तमान हैं
अनुरक्षक।

देख गॉक: प्रभावी AWK प्रोग्रामिंग योगदानकर्ताओं की पूरी सूची के लिए मूर्ख और उसका
प्रलेखन।

देखना README में दायर मूर्ख अनुरक्षकों के बारे में अद्यतन जानकारी के लिए वितरण
और वर्तमान में कौन से पोर्ट समर्थित हैं।

बग रिपोर्ट


यदि आपको इसमें कोई बग मिलता है मूर्ख, कृपया इलेक्ट्रॉनिक मेल भेजें bug-gawk@gnu.org. कृपया
अपने ऑपरेटिंग सिस्टम और उसके पुनरीक्षण, संस्करण को शामिल करें मूर्ख (से मूर्ख --संस्करण),
आपने इसे संकलित करने के लिए किस सी कंपाइलर का उपयोग किया है, और एक परीक्षण प्रोग्राम और डेटा जो उतना ही छोटा है
समस्या को पुन: उत्पन्न करना संभव है।

बग रिपोर्ट भेजने से पहले, कृपया निम्नलिखित कार्य करें। सबसे पहले, सत्यापित करें कि आपके पास है
का नवीनतम संस्करण मूर्ख. प्रत्येक रिलीज़ में कई बग (आमतौर पर सूक्ष्म) को ठीक किया जाता है,
और यदि आपका पुराना हो गया है, तो समस्या पहले ही हल हो चुकी होगी। दूसरा, कृपया देखें
यदि पर्यावरण चर सेट किया जा रहा है LC_ALL सेवा मेरे LC_ALL=सी चीज़ों को आपके जैसा व्यवहार करने का कारण बनता है
अपेक्षा करना। यदि ऐसा है, तो यह एक स्थानीय समस्या है, और वास्तव में यह बग हो भी सकता है और नहीं भी। अंत में, कृपया
यह सुनिश्चित करने के लिए कि आप क्या सोचते हैं, इस मैन पेज और संदर्भ मैनुअल को ध्यान से पढ़ें
भाषा में केवल एक विचित्रता के बजाय, बग वास्तव में है।

जो भी करो, करो नहीं में एक बग रिपोर्ट पोस्ट करें comp.lang.awk. जब मूर्ख डेवलपर्स
कभी-कभी इस समाचार समूह को पढ़ें, वहां बग रिपोर्ट पोस्ट करना रिपोर्ट करने का एक अविश्वसनीय तरीका है
कीड़े. इसके बजाय, कृपया ऊपर दिए गए इलेक्ट्रॉनिक मेल पते का उपयोग करें। वास्तव में।

यदि आप जीएनयू/लिनक्स या बीएसडी-आधारित सिस्टम का उपयोग कर रहे हैं, तो आप एक बग रिपोर्ट सबमिट करना चाह सकते हैं
आपके वितरण का विक्रेता. यह ठीक है, लेकिन कृपया अधिकारी को एक प्रति भेजें
ईमेल पता भी, क्योंकि इसकी कोई गारंटी नहीं है कि बग रिपोर्ट अग्रेषित की जाएगी
la मूर्ख अनुरक्षक।

onworks.net सेवाओं का उपयोग करके ऑनलाइन गॉक का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम