लिनक्स कमांड - गोक जाणून घ्या

नाव

भपका - नमुना स्कॅनिंग आणि प्रक्रिया भाषा

सारांश

gawk [ pOSIX किंवा GNU style options] -f program-file [ - ] फाइल ...
gawk [ pOSIX किंवा GNU शैली पर्याय] [ - ] प्रोग्राम-मजकूर फाइल ...

pgawk [POSIX किंवा GNU शैली पर्याय] -पी कार्यक्रम- file [ - ] फाइल ...
pgawk [POSIX किंवा GNU शैली पर्याय] [ - ] प्रोग्राम-मजकूर फाइल ...

वर्णन

गाव म्हणजे जीएनयु प्रोजेक्टची अंमलबजावणी AWK प्रोग्रामिंग लँग्वेज. हे POSIX 1003.2 कमांड लँग्वेज आणि युटिलिटीज स्टँडर्डमधील भाषेची पुष्टी करते. ही आवृत्ती बदली अहो, केर्निघरण आणि वीनबर्गर यांनी एडब्ल्यूके प्रोग्रामिंग भाषेतील माहितीवर आधारित आहे, UNIX awk च्या सिस्टम व्ही रिलीज 4 आवृत्तीमध्ये आढळलेल्या अतिरिक्त वैशिष्ट्यांसह. Gawk अलीकडील बेल लॅबोरेटरीज् अॅक एक्सटेन्शंस, आणि अनेक जीएनयू-विशिष्ट विस्तार प्रदान करते.

Pgawk gawk ची प्रोफाईलिंग आवृत्ती आहे. हे सर्व गृहीतकांसारखेच आहे , त्या प्रोग्रॅम वगळता ते अधिक हळूहळू चालतात, आणि जेव्हा ते पूर्ण होते तेव्हा ते स्वयंचलितरित्या फाईल एग्जप्राफ्ट.ऑपमध्ये निष्पादन प्रोफाइल तयार करते. --profile पर्याय पहा, खाली.

आदेश ओळीत स्वतःच एक पर्याय आहे, AWK प्रोग्राम मजकूर (जर -f किंवा --file पर्याय द्वारे पुरवले नसल्यास), आणि ARGC आणि ARGV पूर्व-परिभाषित AWK व्हेरिएबल्समध्ये उपलब्ध करावयाचे मूल्य.

पर्याय स्वरूप

Gawk पर्याय पारंपारिक POSIX एक अक्षर पर्याय असू शकतात, किंवा GNU शैलीचे लांब पर्याय. POSIX पर्याय एकाच `` - '' ने सुरू होतात, तर मोठे पर्याय `` - '' ने सुरू होतात. GNU- विशिष्ट वैशिष्ट्यांसाठी आणि POSIX- अनिवार्य वैशिष्ट्ये दोन्हीसाठी दीर्घ पर्याय प्रदान केले आहेत.

POSIX मानकानंतर , गॉयक- विशिष्ट पर्याय -आर विकल्पांद्वारे आर्ग्युमेंटद्वारे पुरवले जातात. मल्टिपल- W पर्याय पुरवले जाऊ शकतात खाली वर्णन केल्यानुसार प्रत्येक- डब्ल्यू पर्यायचा परस्पर लांब पर्याय असतो. लांब पर्यायचे आर्ग्युमेंट एकतर = a च्या द्वारे वगळले जातात, कुठल्याही मध्यस्थ जागा नाहीत, किंवा ते पुढील आदेश ओळ आर्ग्युमेंटमध्ये प्रदान केले जाऊ शकतात. लांब पर्याय संक्षेप करता येईल, जोपर्यंत संक्षेप अद्वितीय राहते

पर्याय

Gawk खालील पर्याय स्वीकारते, वर्णक्रमानुसार सूचीबद्ध.

-एफ एफएस

--field-separator fs इनपुट फील्ड सेपरेटरसाठी एफएस वापरा ( एफएस पूर्वनिर्धारित व्हेरिएबलचे मूल्य).

-v var = val

--assign var = val प्रोग्रॅम सुरू होण्याच्या अगोदर, व्हेरिएबल var साठी व्हॅल्यू व्हॅल द्या. अशा वेरियेबल मूल्ये AWK कार्यक्रमाच्या BEGIN ब्लॉक्ससाठी उपलब्ध आहेत.

-f program-file

--file program-file पहिल्या कमांड लाइन आर्ग्यूमेंट ऐवजी फाइल प्रोग्राम-फाइलमधून AWK प्रोग्राम स्त्रोत वाचा. एकाधिक -f (किंवा --फाइल ) पर्यायांचा वापर केला जाऊ शकतो.

-एमएफ एनएनएन

-एमआर एनएनएन विविध स्मृती मर्यादा मूल्य NNN वर सेट करा. फॅ फ़्लॅंडची संख्या कमाल संख्या सेट करते, आणि r ध्वज कमाल अभिलेख आकार सेट करतो. हे दोन ध्वज आणि -एम पर्याय UNIX जागेच्या बेल लेबोरेटरीज संशोधन आवृत्तीमधील आहेत. ते दुर्लक्ष करून दुर्लक्ष करतात , कारण गायकांच्या पूर्व-परिभाषित मर्यादा नाहीत.

-W कॉम्पॅट

-W पारंपारिक

--compat

--अंतगतशीलता मोडमध्येट्रॅडेटाळ रन. सुसंगतता मोडमध्ये, अनियंत्रितपणे वर्तन करते; GNU- विशिष्ट विस्तारांपैकी कोणीही ओळखले जात नाहीत. या पर्यायाच्या इतर प्रकारांपेक्षा --traditional चा वापर प्राधान्यकृत आहे. अधिक माहितीसाठी, खाली GNU विस्तारण पहा.

-डब्ल्यूडब्लू

-W कॉपीराइट

--कॉपीडबाह्य

- कॉपीराईट मानक आउटपुटवरील GNU कॉपीराइट माहिती संदेशाच्या छान आवृत्तीचे मुद्रण करा आणि यशस्वीरित्या निर्गमन करा

-W डंप-व्हेरिएबल्स [ = फाइल ]

--dump-variables [ = फाइल ] फाईलमधील ग्लोबल व्हेरिएबल्स, त्यांचे प्रकार आणि अंतिम मूल्यांची क्रमबद्ध यादी मुद्रित करा . कोणतीही फाइल पुरवली नसल्यास, gawk वर्तमान निर्देशिकामध्ये awkvars.out नावाची फाइल वापरते.

आपल्या सर्व प्रोग्राम्समध्ये टायपोग्राफीक त्रुटी शोधणे सर्व वैश्विक व्हेरिएबल्सची एक यादी आहे. जर तुमच्याकडे बर्याच फंक्शन्स असलेले मोठे प्रोग्राम असेल तर आपण हा पर्याय वापरु शकता, आणि आपण आपली कार्ये अनजाने ग्लोबल व्हेरिएबल्स वापरत नाहीत याची आपण खात्री करू इच्छित आहात जे आपण स्थानिक असण्याचे उद्दीष्ट केले आहे. (हे विशेषतः सोपे वेरिएबल नावे जसे की i , j , इत्यादी बनविण्याची एक वेगळी सोपे चूक आहे.)

-W मदत

-W वापर

- मदत

--usage मानक आउटपुटवरील उपलब्ध पर्यायांच्या तुलनेने कमी सारांश छापा. ( जीएनयू कोडींग मानदंडांनुसार , हे पर्याय तात्काळ, यशस्वी निर्गमन होऊ देतात.)

-W लिंट [ = घातक ]

--lint [ = घातक ] इतर अॅकेडब्ल्यूके कार्यान्वयनसाठी संशयास्पद किंवा विना-पोर्टेबल असलेल्या बांधकाम विषयी चेतावणी द्या. घातक पर्यायी आर्ग्यूमेंटसह, लिंट चेतावणी घातक त्रुटी होतात. हे कठोर होऊ शकते, परंतु त्याचा वापर क्लिनर AWK प्रोग्रामच्या विकासाला नक्कीच प्रोत्साहित करेल.

-W लिंट-जुने

--lint-old Unix awk च्या मूळ आवृत्तीवर पोर्टेबल नसलेल्या बांधकामांची चेतावणी द्या.

-वाल जन-पो

--gen-po AWK प्रोग्राम स्कॅन व विश्लेषित करा, आणि प्रोग्रॅममधील सर्व स्थानिक प्रयोज्य स्ट्रिंगसाठी प्रविष्ट्यासह मानक आउटपुटवर एक जीएनयू. पीओ फॉर्मेट फाइल तयार करा. प्रोग्राम स्वतःच अंमलात आणला जात नाही. .po फायलींवरील अधिक माहितीसाठी GNU gettext वितरण पहा.

-वा गैर-दशांश-डेटा

--non-decimal-data इनपुट डेटामध्ये अष्टक आणि हेक्साडेसिमल मूल्ये ओळखा सावधगिरीने हा पर्याय वापरा!

-डब्ल्यू पोझिक्स

--posix हे खालील अतिरिक्त प्रतिबंधांसह, सुसंगतता मोड चालू करते:

*

\ x escape अनुक्रम ओळखले जात नाहीत.

*

फक्त स्पेस आणि टॅब फॉल्स अलवॉटरर्स म्हणून कार्य करतात जेव्हा FS सिंगल स्पेसवर सेट केले जाते, नवीनलाइन नाही.

*

आपण नंतर ओळी चालू ठेवू शकत नाही ? आणि :.

*

कीवर्ड फंक्शनसाठी पर्यायी शब्दकोष ओळखला जात नाही.

*

ऑपरेटर ** आणि ** = ^ आणि ^ = च्या जागी वापरले जाऊ शकत नाही.

*

Fflush () फंक्शन उपलब्ध नाही.

-W प्रोफाईल [ = प्रोफाइल_फाइल ]

--profile [ = prof_file ] prof_file वर प्रोफाइलिंग डेटा पाठवा डीफॉल्ट आहे awkprof.out गोक सह चालवा तेव्हा, प्रोफाइल फक्त एक `` छपाई मुद्रित '' कार्यक्रमाचा आवृत्ती आहे. Pgawk सह चालवतांना , प्रोफाइलमध्ये प्रत्येक विधानाची अंमलबजावणी संख्या डाव्या मार्जिनमधील कार्यप्रणालीत असते आणि प्रत्येक वापरकर्ता-परिभाषित केलेल्या फंक्शनसाठी कार्य कॉल संख्या असते.

-W पुन्हा-मध्यांतर

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

-वा स्त्रोत कार्यक्रम-मजकूर

--source program-text AWK कार्यक्रम स्त्रोत कोड म्हणून प्रोग्राम-मजकूर वापरा. हा पर्याय आदेश ओळीवर दाखल केलेल्या सोअर्स कोडसह लायब्ररी फंक्शन्स ( -f आणि --file पर्याय द्वारे वापरल्या जाणार्या) सोप्या इंटरमिक्सिंगला परवानगी देतो. हे प्रामुख्याने शेल स्क्रिप्टमध्ये वापरले जाणारे मध्यम ते मोठ्या AWK प्रोग्राम्ससाठी आहे.

-W आवृत्ती

--version स्टँडर्ड आऊटपुटवरील या विशिष्ट कॉपीची प्रिंट आवृत्ती माहिती प्रिंट करा. फ्री सिस्टीम फाउंडेशन जे वितरण करत आहे त्याच्याशी संबंधीत आपल्या संगणकाची वर्तमान कॉपी अद्ययावत आहे हे जाणून घेण्यासाठी हे उपयोगी आहे. बग नोंदवताना हे देखील उपयुक्त आहे. ( जीएनयू कोडींग मानदंडांनुसार , हे पर्याय तात्काळ, यशस्वी निर्गमन होऊ देतात.)

- पर्यायांच्या शेवटी सिग्नल. AWK प्रोग्रॅमला स्वतःच `` - '' ने सुरू होण्यास आणखी आर्ग्यूमेंट देणे उपयुक्त आहे. हे प्रामुख्याने बहुतांश इतर POSIX प्रोग्राम्सद्वारे वापरलेल्या वितर्क पॅर्सिंग संवादासह सुसंगततेसाठी आहे.

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

AWK कार्यक्रम अंमलबजावणी

ए.डब्ल्यू.के. कार्यक्रमात नमुना-कृती स्टेटमेन्टचा क्रम आणि पर्यायी फंक्शन व्याख्या समाविष्ट असते.

नमुना { अॅक्शन स्टेटमेंट्स }

कार्य नाव ( पॅरामीटर सूची ) { statements }

Gawk प्रथम निर्दिष्ट केल्यास प्रोग्राम-फाइल ( फाइल ) मधून प्रोग्राम स्त्रोत वाचतो, आर्ग्युमेंट्समध्ये --source वरून किंवा कमांड लाईनवरील पहिल्या बिगर-पर्याय आर्ग्युमेंटवरून. -f आणि --source पर्यायचा वापर आदेश पंक्तीवर अनेक वेळा केला जाऊ शकतो. गाऊक प्रोग्रॅम टेक्स्ट वाचतो जसे सर्व प्रोग्रॅम-फाईल आणि कमांड लाइन स्त्रोत ग्रंथ एकत्र जोडले होते. हे AWK फंक्शन्सच्या ग्रंथालयांच्या बांधणीसाठी उपयोगी आहे, त्यांना प्रत्येक नवीन AWK कार्यक्रमात समाविष्ट न करता त्यांचा वापर होतो. हे कमांड लाइन प्रोग्राम्ससह लायब्ररी कार्ये एकत्रित करण्याची क्षमता प्रदान करते.

पर्यावरण वेरियेबल AWKPATH -f पर्यायसह नावाच्या स्त्रोत फाइल शोधताना वापरण्याजोगी शोध मार्ग निर्देशीत करतो. जर हा व्हेरिएबल अस्तित्वात नसेल, तर डिफॉल्ट पथ ".: / Usr / local / share / awk" आहे . (वास्तविक निर्देशिका बदलू शकते, गोक कशी बांधली आणि स्थापित केली यावर अवलंबून असेल.) जर एखाद्या फाईलचे नाव- 'एफ' ऑप्शनमध्ये `` / '' वर्ण असेल तर कोणताही पथ शोध केला जात नाही.

गायक खालील क्रमाने AWK कार्यक्रम अंमलात आणते. प्रथम, -v ऑप्शनद्वारे निर्दिष्ट केलेल्या सर्व व्हेरिएबल असाइनमेंट केले जातात. पुढे, मनशक्तीचा कार्यक्रम अंतर्गत स्वरूपात संकलित करतो. नंतर, gawk BEGIN ब्लॉक (र्स) मध्ये कोड कार्यान्वित करते (असल्यास), आणि नंतर ARGV अॅरे मध्ये नावाच्या प्रत्येक फाइलचे वाचन पुढे जाते. जर कमांड लाइनवर नावांची कोणतीही फाईल नसली तर gawk standard input वाचते.

जर कमांड लाईनवरील फाईलनेम फॉर्म var = val असेल तर त्याला व्हेरिएबल असाइनमेंट म्हणून समजले जाते. वेरियेबल var ला व्हॅल्यू मूल्य व्हॅल दिले जाईल . (हे कोणत्याही BEGIN अवरोधनाने चालत झाल्यानंतर घडते.) इनपुट वॅल्यूएबल असाइनमेंट व्हेरिएबल्स एएडब्ल्यूकेच्या व्हॅल्यूज गृहीत धरण्यासाठी सर्वात उपयुक्त आहे जेणेकरून इनपुट फील्ड आणि रेकॉर्ड्समध्ये कशी मोडली जाते हे नियंत्रित करते. एका डेटा फाइलवर एकाधिक पासची आवश्यकता असल्यास देखील ते राज्य नियंत्रित करण्यासाठी उपयुक्त आहे.

जर ARGV च्या एखाद्या विशिष्ट घटकाचे मूल्य रिक्त ( "" ) असेल तर, तिच्यावर नजर टाकतो .

इनपुटमधील प्रत्येक रेकॉर्डसाठी, एओडब्ल्यूके प्रोग्राममध्ये कोणत्याही नमुन्याशी जुळत असल्यास ते पाहण्यासाठी परीक्षणे पहा. प्रत्येक जुळणीसाठी जे रेकॉर्ड जुळते, संबंधित क्रिया अंमलात येते. नमुन्यांची प्रोग्राममध्ये होणाऱ्या क्रमाने चाचणी केली जाते.

अखेरीस, सर्व इनपुट संपत झाल्यानंतर, gawk END ब्लॉक (कोड) मध्ये कोड कार्यान्वित करतो (असल्यास).

चल, रेकॉर्ड्स, आणि फील्ड

AWK व्हेरिएबल्स गतिमान आहेत; ते पहिल्यांदा वापरले जातात तेव्हा ते अस्तित्वात येतात. त्यांची मूल्ये एकतर तरंगती-बिंदू संख्या किंवा स्ट्रिंग आहेत, किंवा दोन्ही, त्यांचा वापर कशा प्रकारे केला जातो त्यावर अवलंबून आहे. AWK कडे एक डायमेंटल अॅरे आहेत; अनेक आयाम असलेल्या अॅरेचे अनुकरण केले जाऊ शकते. अनेक पूर्व परिभाषित व्हेरिएबल्स प्रोग्राम धावा म्हणून सेट केले आहेत; हे आवश्यकतेनुसार वर्णन केले जाईल आणि खाली सारांशित केले जाईल.

रेकॉर्ड

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

फील्ड

प्रत्येक इनपुट रेकॉर्ड वाचले आहे म्हणून, फील्ड विभाजक म्हणून FS चलनाचे मूल्य वापरून, गॉके रेकॉर्ड फील्डमध्ये विभागून टाकतात. जर एफएस एकच वर्ण असेल तर त्या अक्षराने शेतात फरक केला जातो. जर एफएस ही निरर्थक स्ट्रिंग असेल तर प्रत्येक व्यक्तिचे स्वतंत्र क्षेत्र होईल. अन्यथा, एफएस पूर्ण नियमीत अभिव्यक्ती होण्याची अपेक्षा आहे. विशेष प्रकरणात FS एक मोकळी जागा आहे, क्षेत्रे रिकाम्या जागेच्या आणि / किंवा टॅब आणि / किंवा न्यूलाइन्सच्या द्वारे विभक्त आहेत. (परंतु --पॉपिक्सची चर्चा पहा). टीप: IGNORECASE चे मूल्य (खाली पहा) एफएस एक रेग्युलर एक्स्प्रेशन असताना किती फील्ड विभाजित होतात हे प्रभावित होते आणि जेव्हा आरएस नियमित अभिव्यक्ती असते तेव्हा रेकॉर्ड कसे वेगळे केले जातात

जर FIELDWIDTHS वेरियेबल संख्यांच्या स्पेस विभाजित सूचीवर सेट केले असेल, तर प्रत्येक फील्ड निश्चित रुंदीची अपेक्षा करते आणि विशिष्ट रुंदीचा वापर करून गॉयक रेकॉर्डचे विभाजन करते. एफएसचे मूल्य दुर्लक्षित केले आहे. एफएसला नवीन मूल्य देणे FIELDWIDTHS चा वापर अधिलिखित करते आणि डीफॉल्ट वर्तन पुनर्संचयित करते.

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

एन = 5
मुद्रण $ n

इनपुट रेकॉर्डमध्ये पाचव्या फील्डची छपाई करतो.

इनपुट एनएफ़ मध्ये इनपुट रेकॉर्डमधील फिल्डची एकूण संख्या निर्धारित आहे.

विना-अस्तित्वातील क्षेत्रांबद्दलचे संदर्भ (म्हणजे $ NF नंतरचे फील्ड) शून्य-स्ट्रिंग तयार करतात. तथापि, विना-अस्तित्वातील क्षेत्रास सोपवणे (उदा. $ (NF + 2) = 5 ) NF ची किंमत वाढविते, त्यांच्या मूल्यानुसार शून्य स्ट्रिंग असलेल्या कोणत्याही मध्यस्थी क्षेत्रांना तयार करते आणि $ 0 चे मूल्य recomputed केले जाते फील्ड ऑफशोअरच्या मूल्यानुसार वेगळे केले जाते. नकारात्मक क्रमांकित फील्डचे संदर्भ गंभीर त्रुटीस कारणीभूत आहेत. एनएफ कमी करण्यामुळे नवीन मूल्य गेल्याच्या फील्डचे मुल्य गमावले जाते आणि $ 0 चे मूल्य पुनंपांधित केले जाते, ज्यायोगे शेती ओएफएसच्या मूल्यानुसार वेगळी केली जाऊ शकते.

अस्तित्वात असलेल्या फिल्डसाठी मूल्य देणे, संपूर्ण रेकॉर्ड $ 0 चे संदर्भ झाल्यावर पुन्हा बांधले जातील. याचप्रकारे, $ 0 ची व्हॅल्यू देणे, रेकॉर्डचे पुनर्विक्री करणे, शेतात नवीन व्हॅल्यू तयार करणे.

बिल्ट-इन व्हेरिएबल्स

गाऊक चे बिल्ट-इन व्हेरिएबल्स आहेत:

ARGC

कमांड लाइन आर्ग्युमेंट्सची संख्या ( आळीपाळी , किंवा प्रोग्राम स्रोत समाविष्ट नाही)

ARGIND

चालू फाइलच्या एआरजीव्ही मधील निर्देशांक प्रक्रियारत आहे.

ARGV

कमांड लाइन आर्ग्युमेंट्सचे अॅरे. अॅरे 0 पासून ARGC पर्यंत अनुक्रमित केले आहे. 1. ARGV ची सामग्री बदलत असताना गतिशीलपणे डेटासाठी वापरल्या जाणार्या फाइल्स नियंत्रित करणे शक्य आहे.

बिन्मोड

विना- POSIX प्रणालींकरीता, सर्व फाइल I / O करीता `` बायनरी '' मोडचा वापर निर्देशीत करते 1, 2 किंवा 3 च्या अंकीय मूल्यांची निर्दिष्ट करा की इनपुट फाइल, आउटपुट फाइल किंवा सर्व फाइल अनुक्रमे बायनरी I / O वापरतात. "R" ची स्ट्रिंग मूल्ये, किंवा "w" इनपुट फाइल किंवा आउटपुट फाइल्स निर्दिष्ट करा, अनुक्रमे, बायनरी I / O वापरा. "Rw" किंवा "wr" च्या स्ट्रिंग मूल्ये सर्व फायलींनी बायनरी I / O वापरावे हे निर्दिष्ट करते. कोणतीही अन्य स्ट्रिंग मूल्य "rw" म्हणून मानले जाते, परंतु एक चेतावणी संदेश व्युत्पन्न करते.

CONVFMT

अंकांकरिता रूपांतरण स्वरूप, "% .6 जी" , मुलभूतरित्या.

ENVIRON

एक अॅरे ज्यामध्ये सध्याच्या पर्यावरणाचे मूल्य आहे. अॅरे पर्यावरण परिवर्तनाद्वारे अनुक्रमित केले जाते, प्रत्येक घटक त्या वेरियेबलचे मूल्य आहे (उदा., ENVIRON ["HOME"] कदाचित / home / arnold असू शकते) या ऍरे बदलल्याने प्रोग्राम्सद्वारे पाहिलेल्या पर्यावरणास प्रभावित होत नाही जे रेडरेक्शन किंवा सिस्टीम () फंक्शनद्वारे स्पॉन तयार करतात.

ERRNO

जर प्रणालीची चूक उद्भवली तर एक getline साठी रीडरनेक्शन , गेटलाइनच्या वाचन दरम्यान, किंवा बंद असताना () , नंतर ERRNO मध्ये त्रुटीचे वर्णन करणार्या स्ट्रिंगचा समावेश असेल. नॉन-इंग्रजी लोकॅलॅमध्ये मूल्य अधीन आहे.

FIELDWIDTHS

फील्ड विड्थच्या एक पांढर्या जागाद्वारे विभक्त सूची. सेट झाल्यावर, फोकस विभाजक म्हणून एफएस चलनाचे मूल्य वापरण्याऐवजी निश्चित चौकटच्या क्षेत्रातील इनपुट पार्स करते.

फाईलचे नाव

वर्तमान इनपुट फाइलचे नाव. जर कमांड लाइनवर कोणतीही फाईल निर्दिष्ट केली नसल्यास, FILENAME चे मूल्य `` - '' आहे. तथापि, FILENAME BEGIN ब्लॉकमध्ये (जोपर्यंत getline द्वारे सेट नाही तोपर्यंत) नमुना परिभाषित केलेले आहे.

एफएनआर

वर्तमान इनपुट फाइलमध्ये इनपुट रेकॉर्ड नंबर.

एफएस

इनपुट फील्ड विभाजक, डीफॉल्टनुसार एक जागा. वरील फील्ड पहा

IGNORECASE

सर्व नियमित अभिव्यक्ती आणि स्ट्रिंग ऑपरेशनची केस-संवेदनशीलता नियंत्रित करते. IGNORECASE चे शून्य-शून्य मूल्य असल्यास, नियमांची जुळवणी व नमुन्यांची जुळणी, FS सह फील्ड स्प्टिंग, आरएससह विभक्त रेकॉर्ड, ~ आणि ! ~ सह जुळणारे नियमित अभिव्यक्ति आणि gensub () , gsub () , index () , नियमित (रेग्युलर एक्स्प्रेशन ऑपरेशन ) करताना मॅच () , स्प्लिट () , आणि उप () अंगभूत कार्यवाही सर्व दुर्लक्ष करते. सुचना: अॅरे सबस्क्रिप्टिंग प्रभावित होत नाही , तसेच एस्पोर्ट () फंक्शन नाही.

म्हणून, जर IGNORECASE शून्य सम नाही, / aB / "ab" , " ab" , " ab" आणि "AB" सर्व स्ट्रिंग जुळवितो . सर्व AWK व्हेरिएबल्स प्रमाणे, IGNORECASE चे प्रारंभिक मूल्य शून्य आहे, त्यामुळे सर्व रेग्युलर एक्स्प्रेशन आणि स्ट्रिंग ऑपरेशन सामान्यतः केस-संवेदी असतात. युनिक्सच्या खाली, संपूर्ण आयएसओ 885 9 -1 लॅटिन-1 कॅरेक्टर सेट वापरला जातो तेव्हा दुर्लक्ष केले जाते.

LINT

AWK प्रोग्राममधून --lint पर्यायचे डायनॅमिक नियंत्रण प्रदान करते. खरे असेल तर, सावधगिरीचे इशारे छापण्यासाठी छपाई करतो. खोटे नसल्यास, ते नाही. जेव्हा स्ट्रिंग व्हॅल्यू "घातक" असाइन केली जाते, तेव्हा लिंट चेतावणी घातक त्रुटी होतात, जसे - लांट = घातक . कोणतीही अन्य खरी किंमत केवळ चेतावणी दर्शवितो.

एनएफ

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

NR

आत्तापर्यंत पाहिलेले इनपुट रेकॉर्डची एकूण संख्या.

ओएफएमटी

अंकांकरिता आउटपुट स्वरूप, "% .6 जी" , मुलभूतरित्या.

ओएफएस

आउटपुट फील्ड विभाजक, डीफॉल्टनुसार एक जागा.

ओआरएस

आउटपुट रेकॉर्ड सेपरेटर, डिफॉल्ट द्वारे एक नवीनलाइन.

PROCINFO

या ऍरेचे घटक कार्यरत AWK प्रोग्रामबद्दल माहितीवर प्रवेश प्रदान करतात. काही प्रणाल्यांवर, ऍरेमध्ये घटक असू शकतात जसे की, "n1" काही n साठी "group n " च्या माध्यमाने, ज्या प्रक्रिया गटातील पूरक गटांची संख्या आहे. या घटकांची चाचणी घेण्यासाठी ऑपरेटर वापरा. खालील घटक उपलब्ध असल्याची हमी दिलेली आहे:

PROCINFO ["उदाय"]

getegid मूल्य (2) प्रणाली कॉल.

PROCINFO ["ईयूआयड"]

geteuid चे मूल्य (2) प्रणाली कॉल.

PROCINFO ["एफएस"]

"एफएस" असल्यास एफएस सह क्षेत्र विभाजन प्रभावी आहे, किंवा "FIELDWIDTHS" जर FIELDWIDTHS सह फिल्ड विभाजित प्रभावी असेल.

PROCINFO ["गडी"]

getgid मूल्य (2) प्रणाली कॉल.

PROCINFO ["पीडीपीपीड"]

वर्तमान प्रक्रियेचा प्रक्रिया गट ID.

PROCINFO ["पूड"]

वर्तमान प्रक्रियेची प्रक्रिया आयडी.

PROCINFO ["ppid"]

वर्तमान प्रक्रियेचा पालक प्रक्रिया ID.

PROCINFO ["uid"]

getuid चा मूल्य (2) प्रणाली कॉल.

आरएस

इनपुट रेकॉर्ड सेपरेटर, डिफॉल्ट द्वारे एक नवीनलाइन

आरटी

रेकॉर्ड टर्मिनेटर गाऊक ने आरटीला निर्देशित केलेल्या अक्षराशी किंवा आरएसद्वारे निर्दिष्ट केलेल्या रेग्युलर एक्सप्रेशनशी जुळणारा इनपुट मजकूर आरटीला सेट करतो.

RSTART

जुळणीनुसार जुळलेल्या प्रथम वर्णांचा निर्देशांक () ; 0 जर काहीही जुळत नसेल (याचाच अर्थ होतो की अक्षरदर्शन एकापासून सुरू होते.)

RLENGTH

जुळणीसह जुळलेल्या स्ट्रिंगची लांबी () ; -1 जर जुळत नसेल

SUBSEP

अर्रे घटकांमधील एकाधिक सबस्क्रिप्ट वेगळे करण्यासाठी वापरले जाणारे वर्ण, "\ 034" मुलभूतरित्या.

TEXTDOMAIN

AWK कार्यक्रमाचे पाठ क्षेत्र; प्रोग्रामच्या स्ट्रिंगसाठी स्थानिक भाषांतरे शोधण्यासाठी वापरला जातो.

अॅरे

अॅरे वर्ग चौरस ( [ आणि ] ) दरम्यान अभिव्यक्तिसह सबस्क्रिप्ट केले जातात. जर अभिव्यक्ति एक एक्सप्रेशन लिस्ट असेल ( एक्सप्रो , एक्सपीआर ...) तर ऍरे सबस्क्रिप एक स्ट्रींग आहे ज्यामध्ये प्रत्येक एक्स्प्रेशनच्या (स्ट्रिंग) व्हॅल्यूच्या कंसनेक्शनचा समावेश असतो, जो SUBSEP व्हेरिएबलच्या व्हॅल्यूद्वारे विभाजित आहे . या सुविधेचा उपयोग मल्टीप्ले आयामयुक्त अर्रे चे अनुकरण करण्यासाठी केला जातो. उदाहरणार्थ:

मी = "अ"; j = "B"; k = "C"
x [i, j, k] = "हॅलो, जग \ n"

स्ट्रिंग "ए \ 034 बी \ 034C" स्ट्रिंगद्वारे अनुक्रमित केलेल्या अॅरे x च्या घटकांपर्यंत "हॅलो, जागतिक \ n" लावा . AWK मधील सर्व अॅरे हे एसोसिएटिव्ह आहेत, म्हणजे स्ट्रिंग व्हॅल्यूद्वारे अनुक्रमित आहेत.

विशेष ऑपरेटरमध्ये एखाद्या विशिष्ट मूल्य असलेल्या इंडेक्समध्ये एखादा अॅरे आढळला आहे का ते पाहण्यासाठी एखादा किंवा एखादा वक्तवताना वापरला जाऊ शकतो.

जर (अॅरे मध्ये व्हॅल) प्रिंट अॅरे [व्हॉल]

अॅरेमध्ये एकाधिक सबस्क्रिप्ट असल्यास, अॅरेमध्ये (i, j) वापरा.

अॅरेच्या सर्व घटकांवरील पुनरावृत्तीसाठी आर्ट लॉक मध्ये देखील वापरता येऊ शकते.

हटवा विधान वापरून एखादा घटक ऍरे मधून हटवला जाऊ शकतो. ऍरेचे संपूर्ण घटक डिलिट करण्यासाठी डिलीट स्टेटमेंट वापरला जाऊ शकतो.

परिवर्तनशील टायपिंग आणि रूपांतर

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

संख्या म्हणून मानल्या गेलेल्या वेरियेबलला जबरदस्ती करण्यासाठी, त्यास 0 जोडा; त्याला स्ट्रिंग म्हणून हाताळण्यासाठी सक्ती करणे, ती निरर्थक स्ट्रिंगसह जोडणे

स्ट्रिंग नंबरमध्ये रूपांतरित करणे आवश्यक आहे, रूपांतरण strtod (3) वापरून केले जाते . संख्या CFVFMT चे मूल्य वापरून sprintf (3) साठी फॉरमॅट स्ट्रिंग म्हणून, स्ट्रिंगमध्ये रूपांतरित केले जाते, जसे की वेरिएबलच्या अंकीय मूल्यासह वितर्क म्हणून. तथापि, जरी AWK मधील सर्व संख्या फ्लोटिंग-पॉइंट असले तरी, इंटिग्रल व्हॅल्यू नेहमी पूर्णांकाने रूपांतरीत केले जातात. त्यामुळे दिलेल्या

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

व्हेरिएबल b मध्ये string "12" आहे आणि "12.00" नाही .

गायक खालील प्रमाणे तुलना करतात: जर दोन व्हेरिएबल्स संख्यात्मक असतील तर त्यांची संख्यात्मक तुलना केली जाते. जर एक मूल्य अंकीय आहे आणि दुसर्याकडे स्ट्रिंग व्हॅल्यू आहे जी `` अंकीय स्ट्रिंग आहे, '' तर तुलनासुद्धा अंकीय पद्धतीने केले जाते. अन्यथा, अंकीय मूल्य स्ट्रिंगमध्ये रुपांतरित केले जातात आणि स्ट्रिंग तुलना केली जाते. दोन स्ट्रिंगची स्ट्रिंग म्हणून तुलना केली जाते. लक्षात ठेवा POSIX मानक `` संख्यात्मक स्ट्रिंग '' ची संकल्पना सर्वत्र लागू होते, अगदी स्ट्रींग स्टॅंटंट्सकरिताही. तथापि, हे स्पष्टपणे चुकीचे आहे, आणि गायक हे करत नाही. (सुदैवाने, हे मानकच्या पुढील आवृत्तीमध्ये निश्चित केले आहे.)

लक्षात ठेवा की स्ट्रींग स्थिरांक, जसे की "57" , अंकीय स्ट्रिंग नाहीत, ते स्ट्रिंग स्थिरांक आहेत. `` अंकीय स्ट्रिंग \ 'ची कल्पना केवळ फील्ड स्ट्रक्चर्स ( स्पिल्ट ()) द्वारे तयार केलेल्या शेतात, सुरवात इनपुट, FILENAME , ARGV घटक, ENVIRON घटक आणि अॅरेचे घटक यावर लागू होते. मूलभूत कल्पना म्हणजे वापरकर्ता इनपुट , आणि केवळ अंकीय स्वरूपातील वापरकर्ता इनपुट, त्या पद्धतीने हाताळले पाहिजे.

न आरंभ केलेल्या चलनांमध्ये संख्यात्मक मूल्य 0 आणि स्ट्रिंग मूल्य "" (शून्य, किंवा रिक्त, स्ट्रिंग) असते.

ऑक्टल आणि हेक्साडेसिमल स्थिरांक

आवृत्ती 3.1 च्या प्रारंभ आवृत्तीसह , आपण आपल्या AWK प्रोग्राम स्त्रोत कोडमध्ये सी-स्टाईल अष्टक आणि हेक्साडेसिमल स्थिरक वापरु शकता. उदाहरणार्थ, अष्टक व्हॅल्यू 011 ही दशांश 9 प्रमाणे आहे , आणि हेक्झाडेसीमल व्हॅल्यू 0x11 ही दशांश 17 आहे.

स्ट्रिंग स्थिरांक

AWK मधील स्ट्रिंग स्थिरांक दोन ओळींमधील ( " ) दरम्यान जुळलेल्या वर्णांची अनुक्रम असतात. स्ट्रिंग्समध्ये, काही एस्केप क्रम ओळखले जातात जसे सी प्रमाणे.

\\

एक शब्दशः बॅकस्लॅश

\ a

`` अलर्ट '' वर्ण; सामान्यतः ASCII BEL वर्ण

\ b

बॅकस्पेस

\ f

फॉर्म-फीड

\ n

नवीन ओळ.

\ r

कॅरेज रिटर्न

\ t

क्षैतिज टॅब

\ v

अनुलंब टॅब

\ एक्स हेक्स अंक

\ X नंतर पुढील हेक्साडेसिमल अंकांच्या स्ट्रिंगद्वारे प्रस्तुत केलेले वर्ण एएनएसआयसी प्रमाणे, खालील सर्व हेक्साडेसिमल अंक एस्केप क्रमांचा भाग समजले जातात. (हे वैशिष्ट्य आम्हाला समिती द्वारे भाषा डिझाइन बद्दल काहीतरी सांगायला हवे.) उदा, "\ x1B" ही एस्केआयआयईएससी (एस्केप) वर्ण आहे.

\ ddd

1-, 2-, किंवा 3-अंकीय आक्टिकल अंकांनी दर्शवलेले वर्ण. उदा, "\ 033" एएससीआयई एएससी (एस्केप) वर्ण आहे.

\ c

शब्दशः वर्ण .

एस्केप अनुक्रमांचा वापर सतत रेग्युलर एक्सप्रेशन्समध्ये केला जाऊ शकतो (उदा., [[\ T \ f \ n \ r \ v] / व्हायरसपेस वर्णांशी जुळतात).

कॉम्पॅटिबिलिटी मोडमध्ये, ऑक्टल आणि हेक्झाडेसीमल एस्केप सीक्वसद्वारे दर्शवलेले वर्ण नियमित अभिव्यक्ती स्थिरांमधून वापरले जातात. अशाप्रकारे, / a \ 52b / / a \ * b / सारखा आहे.

नमुने आणि क्रिया

AWK एक ओळ-देणारं भाषा आहे नमुना प्रथम येतो, आणि नंतर कृती. अॅक्शन स्टेटमेंट्स { आणि } मध्ये संलग्न आहेत. एकतर नमुना गहाळ असू शकतो, किंवा क्रिया गहाळ असू शकते, परंतु, नक्कीच नाही, दोन्ही नाही. जर नमुना गहाळ झाला असेल, तर इनपुटची प्रत्येक रेकॉर्डसाठी क्रिया केली जाते. एक गहाळ क्रिया समान आहे

{प्रिंट}

जे संपूर्ण रेकॉर्ड छापतो.

टिप्पण्या `` # '' वर्णाने प्रारंभ होतात आणि ओळीच्या शेवटपर्यंत सुरू रहातात. रिक्त ओळी वापरुन स्टेटमेन्ट वेगळे करू शकतात. साधारणपणे, एक निवेदनाची एक नवीन ओळ संपत असते, तथापि, हे ``, '', { , ?] मध्ये समाप्त होणाऱ्या ओळींसाठी नसते का? , : , && , किंवा || . खालील ओळीत किंवा इतरांमध्ये त्यांच्या स्टेटमेन्ट्स खालील ओळीवर आपोआप चालूच असतात. इतर प्रकरणांमध्ये, एक ओळ एका 'end' करून चालू ठेवली जाऊ शकते, ज्या बाबतीत नवीनलाइनकडे दुर्लक्ष केले जाईल.

``; '' ने विभक्त करून एकाधिक विधाने एका ओळीवर ठेवता येतील. हे नमुना-अॅक्शन जोडीच्या अॅक्शन भागामध्ये (नेहमीचे केस), आणि पॅटर्न अॅक्शन स्टेटमेंट्सना दोन्ही कायदे लागू होते.

नमुने

AWK नमुन्यांची खालीलपैकी एक असू शकते:

BEGINEND / रेग्युलर एक्सप्रेशन / रिलेशनल एक्स्प्रेशन पैटर्न && नमुना नमुना || नमुना नमुना ? नमुना : नमुना ( नमुना ) ! नमुना नमुना 1 , नमुना 2

BEGIN आणि END दोन विशेष प्रकारचे नमुने आहेत जे इनपुट विरूद्ध चाचणी न केलेले आहेत. सर्व BEGIN नमुन्यांमधील कार्यवाही विलीनीकरण केले जातात जर सर्व स्टेटमेन्ट एकाच BEGIN ब्लॉकमध्ये लिहिले गेले असतील. कोणत्याही इनपुटचे वाचन करण्यापूर्वी त्यांना कार्यान्वित केले जाते. त्याचप्रमाणे, सर्व END ब्लॉक्स् विलीन होऊन, सर्व इनपुट संपत असताना (किंवा जेव्हा एक्झिट स्टेटमेंट कार्यान्वित होते) कार्यान्वित होते. नमुना अभिव्यक्तीमध्ये BEGIN आणि END नमुने इतर नमुन्यांसह एकत्र केले जाऊ शकत नाहीत BEGIN आणि END नमुन्यामध्ये क्रिया गहाळ भाग नाहीत.

/ नियमित अभिव्यक्ती / प्रतिमांसाठी, संबंधित निवेदन प्रत्येक इनपुट रेकॉर्डसाठी अंमलात आणले जाते जे नियमित अभिव्यक्तीशी जुळते. रेग्युलर एक्सप्रेशंस उदा. (1) मध्ये आहेत, आणि ते खाली सारांशित आहेत.

संबंधिक अभिव्यक्ती कारवाईच्या विभागात खाली निर्दिष्ट केलेल्या कोणत्याही ऑपरेटर्सचा वापर करु शकते. हे सर्वसाधारणपणे चाचणी करतात की विशिष्ट फील्ड विशिष्ट रेग्युलर एक्स्प्रेशनशी जुळतात किंवा नाही.

&& , || , आणि ! ऑपरेटर तार्किक आणि, तार्किक, आणि तार्किक टी आहेत. अनुक्रमे सी. प्रमाणे ते शॉर्ट-सर्किट मूल्यमापन करतात, जसे की सी प्रमाणे, आणि अधिक जुन्या पॅटर्न प्रकारचे संयोजन करण्यासाठी वापरले जातात. बहुतेक भाषांप्रमाणे, पॅरेंथेसिसचा उपयोग मूल्यांकन मूल्यानुसार बदलण्यासाठी केला जाऊ शकतो.

?: ऑपरेटर सी मध्ये समान ऑपरेटर सारखे आहे. पहिल्या नमुना खरे असेल तर चाचणी साठी वापरले नमुना दुसरा नमुना आहे, अन्यथा तो तिसरा आहे. दुस-या व तिसर्या पॅटर्नपैकी केवळ एक मूल्यांकन केलेला आहे.

अभिव्यक्तीचा नमुना 1, नमुना 2 स्वरूपात श्रेणी पॅटर्न असे म्हणतात. हे एका रेकॉर्डसह सुरु होणार्या सर्व इनपुट रेकॉर्डशी जुळले जाते जे नमुना 1 शी जुळते आणि नमुद केले जाणारे एक रेकॉर्ड 2 पर्यंत जुळत नाही , समावेशक. हे इतर कोणत्याही प्रकारचे नमुना अभिव्यक्तीसह एकत्रित करत नाही.

नियमित अभिव्यक्ती

रेग्युलर एक्स्प्रेशन्स उदा . में सापडलेल्या विस्तारित प्रकार आहेत. ते वर्णांनी खालीलप्रमाणे बनले आहेत:

नॉन मेटाचॅरॅक्टर क सह जुळते.

\ c

अक्षरशः अक्षरांची जुळणी करतो.

.

नवीन वर्णसह कोणत्याही वर्णांशी जुळते

^

एका स्ट्रिंगच्या सुरवातीशी जुळते

$

एका स्ट्रिंगच्या शेवटी जुळते.

[ एबीसी ... ]

वर्ण सूची, abc कोणतेही वर्ण जुळत आहे ....

[^ abc ... ]

नकारार्थी वर्ण सूची, abc वगळता इतर अक्षरांशी जुळते ....

आर 1 | आर 2

पर्याय: एकतर r1 किंवा r2

r1r2

जोडणे: सामने r1 आणि नंतर r2 .

r +

एक किंवा अधिक आर चे सामने

r *

शून्य किंवा त्यापेक्षा जास्त आर जुळते

r ?

शून्य किंवा एक आर जुळते

( आर )

गटबद्धता: सामने r .

आर { एन }

आर { एन }}

r { n , m } एक किंवा दोन संख्यी काचेचे अवयव अंतराल अभिव्यक्ती दर्शवतात. जर चौकटीत एक संख्या असेल तर मागील रेग्युलर एक्स्प्रेशन r हे एन वेळा पुनरावृत्ती होते. स्वल्पविरामाने विभक्त केलेले दोन संख्या असल्यास, r ने मीटर वेळा पुनरावृत्ती केली आहे. जर एक संख्या स्वल्पविरामाने आली असेल तर आर ज्यास किमान नऊ वेळा पुनरावृत्ती होते.

आंतरविकि अभिव्यक्ती फक्त तेव्हाच उपलब्ध असते जेव्हा कमांड लाइनवर --posix किंवा --re-interval निश्चित केले जाते.

\ y

रिकाम्या स्ट्रिंगशी एखाद्या शब्दाच्या सुरवातीला किंवा शेवटी समाप्ती करते.

\ B

एका शब्दाच्या रिक्त स्ट्रिंगशी जुळते.

\ <

शब्दाच्या सुरुवातीला रिक्त स्ट्रिंगशी जुळते.

\>

शब्दाच्या समाप्तीस रिक्त स्ट्रिंग जुळते.

\ वॅट

कोणत्याही शब्द-घटक अक्षरांशी जुळतात (अक्षर, अंक किंवा अंडरस्कोर)

\ डब्ल्यू

शब्द-घटक नसलेले कोणतेही अक्षर जुळवते

\ '

बफरच्या सुरूवातीला रिक्त स्ट्रिंग जुळते (स्ट्रिंग)

\ '

बफरच्या शेवटी रिक्त स्ट्रिंगशी जुळते

स्ट्रिंग स्ट्रँटंटस्मध्ये वैध असलेले सुटलेले अनुक्रम (खाली पहा) हे रेग्युलर एक्स्प्रेशनमध्ये वैध आहेत.

वर्ण वर्ग हे POSIX मानक मध्ये सुरु केलेले एक नवीन वैशिष्ट्य आहे. एक वर्ण वर्ग विशिष्ट विशेषता असलेल्या वर्णांची सूची सांगण्यासाठी एक विशेष अंकन आहे, परंतु वास्तविक वर्ण स्वतः देश ते देश आणि / किंवा वर्ण संच पासून अक्षर संचवर भिन्न असू शकतात. उदाहरणार्थ, अमेरिकेतील आणि फ्रान्समधील वर्णमालेचे वर्ण वेगळे आहे.

एक वर्ण वर्ग फक्त एका वर्ण सूचीच्या ब्रॅकेटमध्ये एका नियमित अभिव्यक्तीमध्ये वैध असतो. वर्ण क्लार्कमध्ये [: , कीवर्डला वर्ग दर्शविणारा आणि ]:] असतो . POSIX मानक द्वारे परिभाषित वर्ण वर्ग आहेत:

[: alnum:]

अक्षरअंकिय वर्ण.

[: अल्फा:]

वर्णमाला वर्ण.

[: रिक्त:]

स्पेस किंवा टॅब वर्ण

[: cntrl:]

वर्ण नियंत्रित करा

[: अंकः]

संख्यात्मक वर्ण

[: ग्राफ:]

वर्ण जे मुद्रणयोग्य आणि दृश्यमान दोन्ही आहेत (एक जागा मुद्रणयोग्य आहे, परंतु दृश्यमान नसते, तर ए दोन्ही आहे.)

[: लोअर:]

लोअर-केस अल्फाबॅटिक वर्ण

[: मुद्रण:]

मुद्रणयोग्य वर्ण (वर्ण जे नियंत्रित वर्ण नाहीत.)

[: punct:]

विरामचिन्ह वर्ण (अक्षरे जे अंक नाहीत, अंक, नियंत्रण वर्ण किंवा स्पेस वर्ण नाहीत).

[: अवकाश:]

स्पेस वर्ण (जसे की स्पेस, टॅब आणि फॉर्मफीड, काही नाव).

[:वरील:]

उच्च-केस वर्णक्रांतीतील वर्ण

[: xdigit:]

हेक्झाडेसिमल अंक असणारे वर्ण.

उदाहरणार्थ, पॉसिक्स मानकापूर्वी, अल्फान्यूमेरिक वर्ण जुळण्यासाठी, आपण / [A-Za-z0- 9] / लिहिणे आवश्यक होते आपल्या वर्ण सेटमध्ये अन्य वर्णक्रमानुस वर्ण असल्यास, हे त्यांच्याशी जुळत नसतील आणि आपल्या वर्णाने एएससीआयआयने वेगळ्या पद्धतीने जोडलेल्या असल्यास हे कदाचित एएससीआयआय अल्फान्यूमेरिक वर्णांशी जुळत नसेल. POSIX कॅरेक्टर वर्गांसह, आपण / [[: alnum:]] / लिहू शकता, आणि हे आपल्या वर्ण संचामध्ये वर्णक्रमानुसार आणि अंकीय वर्णांशी जुळत आहे.

वर्ण सूचीमध्ये दोन अतिरिक्त विशेष अनुक्रम दिसू शकतात. हे नॉन-एएससीआयआय वर्ण संचंवर लागू होतात, ज्या एकापेक्षा अधिक वर्णांसह एकसारखे चिन्ह ( कोलांटींग घटक म्हटलेले) दर्शविते, तसेच कोलाट , किंवा सॉर्टिंग, हेतूसाठी समतुल्य असणारे अनेक वर्ण असू शकतात. (उदा, फ्रेंचमध्ये, एक साधा `` ई '' आणि एक गंभीर-जोरदार ई` समतुल्य आहे.)

आकलनशक्तीचे चिन्ह

एक कोलांटींग चिन्ह एक मल्टि-कॅरेक्टर कॉलेटिंग एलिमेंट आहे . आणि .] . उदाहरणार्थ, जर ch संकिर्ण घटक आहे, तर [[.सी.]] ही एक नियमित अभिव्यक्ती आहे जी या कोळशाच्या घटकाशी जुळते, तर [च] एक नियमित अभिव्यक्ती आहे जी सी किंवा एच जुळते.

समतुल्य वर्ग

एक समतुल्यता वर्ग हा समान वर्णांच्या सूचीसाठी लोकेल-विशिष्ट नाव आहे. [= आणि =] मध्ये हे नाव आहे. उदाहरणार्थ, नाव सर्व `` ई, '' ई ',' 'आणि `` ई` चे प्रतिनिधित्व करण्यासाठी वापरली जाऊ शकते. या प्रकरणात, [[= ई =]] एक नियमित अभिव्यक्ती आहे , ई ' , किंवा ई` पैकी कोणतेही जुळते .

ही वैशिष्ट्ये नॉन-इंग्रजी बोलत लोकॅलिक्समध्ये खूप मौल्यवान आहेत नियमित अभिव्यक्ति जुळण्यासाठी वापरली जाणारी पुस्तकाची कार्ये केवळ POSIX वर्ण श्रेणी ओळखतात; ते कॉलिंग चिन्हे किंवा समता श्रेणी ओळखत नाहीत.

\ Y , \ B , \ < , \> , \ w , \ w , \ , आणि \ ' ऑपरेटर्स विशिष्ट प्रकारचे असतात ; ते GNU रेग्युलर एक्स्प्रेशन लायब्ररीमधील सुविधांवर आधारित आहेत.

विविध कमांड लाइन ऑप्शन रेग्युलर एक्स्प्रेशनमध्ये गोक शब्दाची व्याख्या कशी करतात याचे नियंत्रण करतात.

कोणतेही पर्याय नाहीत

पूर्वनिर्धारित केसमध्ये, POSIX रेग्युलर एक्स्प्रेशन आणि जीएनयू रेग्युलर एक्स्प्रेशन ऑपरेटरच्या सर्व सुविधा प्रदान करतात. तथापि, अंतराल अभिव्यक्ति समर्थित नाहीत.

--पोझिक्स

फक्त POSIX रेग्युलर एक्स्प्रेशन समर्थित आहेत, GNU ऑपरेटर विशेष नाहीत. (उदा, \ w एखाद्या शब्दशः वाक्यांशी जुळते). मध्यांतरांच्या अभिव्यक्तींना अनुमती आहे.

--विशिष्ट

पारंपारिक यूनिक्स ओक रेग्युलर एक्सप्रेशन्स जुळतात. GNU ऑपरेटर विशिष्ट नाहीत, अंतराल अभिव्यक्ती उपलब्ध नसतात, आणि न ही POSIX वर्ण वर्ग ( [[: alnum:]] आणि असेच आहेत). ऑक्टल आणि हेक्झाडेसीमल एस्केप सीक्वसद्वारे वर्णित वर्णांचा शब्दशः वापर केला जातो, जरी ते रेग्युलर एक्स्प्रेशन मेटाचलक्टर्सचे प्रतिनिधित्व करीत असले तरीही

--रे-मध्यांतर

रेग्युलर एक्स्प्रेशनमध्ये मध्यांतरांच्या अभिव्यक्तींना अनुमती द्या, जरी --ट्रॅाडिशियल प्रदान केले गेले असले तरीही.

क्रिया

क्रिया स्टेटमेंट्स ब्रेसिज मध्ये संलग्न आहेत, { आणि } . ऍक्शन स्टेटमेंटमध्ये बर्याच भाषांमध्ये आढळणारे नेहमीच्या असाइनमेंट, सशर्त आणि लूपिंग स्टेटमेंट्स असतात. ऑपरेटर, कंट्रोल स्टेटमेन्ट आणि उपलब्ध इनपुट / आउटपुट स्टेटमेन्ट सी मध्ये आहेत.

ऑपरेटर

एडब्ल्यूकेच्या ऑपरेटर, कमी होण्याच्या प्राधान्यक्रमानुसार

( ... )

गटबद्ध करणे

$

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

++ -

वाढ आणि कमी, उपसर्ग आणि पोस्टफिक्स दोन्ही.

^

एक्सपन्न्टेन्सिअन ( ** देखील वापरला जाऊ शकतो, आणि असाइनमेंट ऑपरेटरसाठी = )

+ -!

Unary plus, unary minus, आणि तार्किक नकार.

* /%

गुणाकार, भागाकार आणि मापांक

+ -

बेरीज आणि वजाबाकी.

जागा

स्ट्रिंग जोडणे

<>

<=> =

=== नियमित संबंधक ऑपरेटर.

~! ~

नियमित अभिव्यक्ती जुळणी, नकारार्थी सामना. टीप: ~ किंवा ~ ~ च्या डाव्या बाजूला एका नियमित रेग्युलर एक्स्प्रेशन ( / foo / ) वापरू नका ! फक्त उजव्या हाताने एक वापरा एक्सप्रेशन / foo / ~ ऍप् , त्याच अर्थाने ($ 0 ~ / foo /) ~ EX पर्यंत अर्थ आहे . हे सहसा काय होते हे नाही.

मध्ये

अॅरे सदस्यता

&&

तार्किक आणि.

||

लॉजिकल किंवा

?:

सी सशर्त अभिव्यक्ती हे फॉर्म expr1 आहे ? expr2 : expr3 जर expr1 खरे असेल तर, अभिव्यक्तिचे मूल्य expr2 आहे , अन्यथा ते expr3 आहे . फक्त expr2 आणि expr3 चे मूल्यमापन केले जाते.

= + = - =

* = / =% = ^ = असाइनमेंट संपूर्ण असाइनमेंट ( var = मूल्य ) आणि ऑपरेटर-असाइनमेंट (अन्य फॉर्म) दोन्ही समर्थित आहेत.

नियंत्रण स्टेटमेन्ट

नियंत्रण स्टेटमेन्ट खालीलप्रमाणे आहेत:

if ( condition ) स्टेटमेंट [ else statement ] ( condition ) स्टेटमेंट तर ( स्टेटमेंट ) स्टेटमेंट करताना ( एक्सप्रियन ; एक्सपीआर 2 ; एक्सपीआर 3 ) स्टेटमेंटसाठी ( ऍरे मध्ये var ) स्टेटमेंट ब्रेक सुरू ठेवा काढून टाका अॅरे [ इंडेक्स ] डिलीट अॅरे एक्झेस्ट [ एक्सप्रेशन ] { स्टेटमेन्ट }

I / O स्टेटमेंट्स

इनपुट / आउटपुट स्टेटमेंट खालीलप्रमाणे आहेत:

बंद करा ( फाइल [ , कसे ] )

फाईल, पाइप किंवा सह-प्रक्रिया बंद करा. दोन-पाईप पाइपचे एक समापन सह-प्रक्रियेस बंद करताना फक्त पर्यायी पर्याय कसा वापरावा ? तो स्ट्रिंग व्हॅल्यू असणे आवश्यक आहे, एकतर "ते" किंवा "वरून" .

गेटलाइन

पुढील इनपुट रेकॉर्डमधून $ 0 सेट करा; एनएफ , एनआर , एफएनआर सेट करा.

getline < फाइल

फाईलच्या पुढील रेकॉर्डमधून $ 0 सेट करा ; NF सेट करा

गेटलाइन var

पुढील इनपुट रेकॉर्डवरून सेट करा var ; एनआर , एफएनआर सेट करा.

getline var < फाइल

फाइलच्या पुढील रेकॉर्डवरून var सेट करा .

आदेश | गेटलाइन [ वार ]

वरील आदेशानुसार आउटपुट $ 0 किंवा var मध्ये आउटपुट करा.

आदेश | आणि getline [ var ]

वरील आदेशानुसार आउटपुट $ 0 किंवा var मध्ये सह-प्रक्रिया पाईपिंग म्हणून चालवा. सहकारी प्रक्रिया एक गायक विस्तार आहेत.

पुढे

वर्तमान इनपुट रेकॉर्डची प्रक्रिया थांबवा. पुढील इनपुट रेकॉर्ड वाचले जाते आणि AWK कार्यक्रमात प्रथम नमुन्यासह प्रक्रिया सुरू होते. जर इनपुट डेटाचा शेवट गाठला असेल तर, शेवटचा ब्लॉक (र्स), जर असेल तर, कार्यान्वित केला जातो.

पुढील फाइल

वर्तमान इनपुट फाईलवर प्रक्रिया थांबवा. पुढील इनपुट रेकॉर्ड पुढील इनपुट फाईलमधून येते. FILENAME आणि ARGIND अद्यतनित केले जातात, FNR 1 वर रीसेट होते आणि AWK प्रोग्राममधील प्रथम नमुन्यासह प्रक्रिया समाप्त होते. जर इनपुट डेटाचा शेवट गाठला असेल तर, शेवटचा ब्लॉक (र्स), जर असेल तर, कार्यान्वित केला जातो.

मुद्रण करा

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

प्रिंट एक्सपी-लिस्ट

सूत्रांचे छपाई करा प्रत्येक एक्सप्रेशन ओएफएस व्हेरिएबलच्या व्हॅल्यूद्वारे वेगळे केले जाते. आउटपुट रेकॉर्ड ओआरएस व्हेरिएबलच्या मूल्याने संपुष्टात आले आहे.

print expr-list > फाईल

फाईलवरील अभिव्यक्तीचे मुद्रण करते प्रत्येक एक्सप्रेशन ओएफएस व्हेरिएबलच्या व्हॅल्यूद्वारे वेगळे केले जाते. आउटपुट रेकॉर्ड ओआरएस व्हेरिएबलच्या मूल्याने संपुष्टात आले आहे.

printf fmt, expr-list

स्वरूप आणि मुद्रित करा

printf fmt, expr-list > फाईल

फाइल स्वरूपित करा आणि मुद्रित करा .

सिस्टीम ( सीएमडी-लाइन )

Cmd-line कमांड कार्यान्वित करा, आणि बाहेर पडा स्थिती परत करा. (हे गैर- POSIX प्रणाल्यांवर उपलब्ध नसू शकते.)

फफ्लस ( [ फाइल ] )

ओपन आउटपुट फाइल किंवा पाईप फाईलशी संबंधित कोणतेही बफर फ्लश करा . फाईल गहाळ झाल्यास, नंतर मानक आउटपुट फ्लश केले जाते. फाईल ही शून्य स्ट्रिंग आहे, तर सर्व खुल्या आउटपुट फाईल्स आणि पाईप्समध्ये त्यांचे बफर फ्लश आहेत.

प्रिंट आणि printf साठी अतिरिक्त आउटपुट पुनर्निर्देशन अनुमत आहेत

प्रिंट ... >> फाईल

फाईलमध्ये आउटपुट जोडते.

प्रिंट ... | आदेश

एक पाईप वर लिहित

मुद्रण ... | & आदेश

एका सह-प्रक्रियेस डेटा पाठविते.

Getline आदेश फाइलच्या शेवटी 0 वर आणि त्रुटीवर -1 देतो. त्रुटीवर, ERRNO मध्ये समस्येचे वर्णन करणारा एक स्ट्रिंग आहे.

टीप: जर पाईप किंवा सह-प्रक्रिया वापरणे किंवा लूपमध्ये छपाई किंवा छापील स्वरूपात वापरत असाल तर आपण आदेशाचे नवीन उदाहरण तयार करण्यासाठी बंद () वापरणे आवश्यक आहे . AWK ते EOF परत केल्यावर स्वयंचलितपणे पाईप किंवा सह-प्रक्रिया बंद करीत नाहीत.

Printf स्टेटमेंट

Printf स्टेटमेंट आणि स्प्रिंटफ () फंक्शनच्या खाली (खाली पहा) AWK आवृत्त्या खालील रूपांतरण विनिर्देश स्वरूप स्वीकारतात:

% सी

एक ASCII वर्ण % C साठी वापरलेला वितर्क अंकीय आहे, तर तो एक वर्ण म्हणून मानला जातो आणि मुद्रित केला जातो. अन्यथा, आर्ग्युमेंटला एक स्ट्रिंग असे गृहित धरले जाईल, आणि त्या स्ट्रिंगचे पहिले अक्षर मुद्रित केले जाईल.

% d , % i

एक दशांश संख्या (पूर्णांक भाग).

% ई,% ई

फॉर्मची अस्थायी बिंदू संख्या [-] d.dddddde [+ -] dd % ई स्वरुप ईऐवजी ईचा वापर करते.

% फ

फॉर्मची एक तरल बिंदू क्रमांक [-] ddd.dddddd .

% g,% G

% E किंवा % f रूपांतरण वापरा, जे लहान असेल ते निनावी शून्यासह दडलेले आहेत. % G स्वरूप % e ऐवजी % E चा वापर करते.

% ओ

अहस्ताक्षरित ऑक्टल नंबर (हे देखील एक पूर्णांक).

% u एका स्वाक्षरीकृत संख्येस (पुन्हा, एक पूर्णांक).

% s

एक अक्षर स्ट्रिंग

% x,% X

स्वाक्षरी न केलेले हेक्साडेसिमल संख्या (पूर्णांक). % X स्वरूपात abcdef ऐवजी ABCDEF वापरते.

%%

एक % वर्ण; कोणताही तर्क बदलला नाही

वैकल्पिक, अतिरीक्त घटक % आणि नियंत्रण पत्र यांच्यामध्ये खोटे बोलू शकतात:

गणना करा $

फॉर्मेटिंगमध्ये या बिंदूची गणना करा. याला पॉझिटिकल स्पेसिफायर असे म्हणतात आणि प्रामुख्याने AWK प्रोग्रामच्या मूळ मजकूरात नाही, स्वरूप स्ट्रिंगच्या भाषांतरित आवृत्तींमध्ये वापरण्यासाठी आहे. हे एक गायक विस्तार आहे.

-

अभिव्यक्ती त्याच्या क्षेत्रातील आत सोडली पाहिजे.

जागा

अंकीय रुपांतरणासाठी, स्पेससह सकारात्मक मूल्यांचे प्रीफिक्स आणि वजा चिन्हासह नकारात्मक मूल्ये.

+

प्लॅट चिन्ह, चौथ्याआधीपासून (खाली पहा) पूर्वी वापरला जातो, नेहमी डेटार रूपांतरणांसाठी चिन्ह पुरवते, जरी डेटा स्वरूपित करणे सकारात्मक असेल तरीही + स्पेस सुधारक अधिलिखित करते.

#

विशिष्ट नियंत्रण पत्रांसाठी `` वैकल्पिक स्वरूप '' वापरा % ओसाठी , एक अग्रगण्य शून्य प्रदान करा. % X साठी, आणि % X , नॉनझोरो परिणामासाठी अग्रगण्य 0x किंवा 0x पुरवतात. % E , % E आणि % f साठी , परिणामात नेहमी दशांश चिन्ह आहे. % G साठी आणि % G साठी , अनुक्रमांक शून्य, परिणामातून काढले जात नाही

0

अग्रगण्य 0 (शून्य) ध्वज म्हणून कार्य करते, हे दर्शविते की जागा रिक्त स्थानांऐवजी शून्यसह पॅड असावी. हे नॉन-अंकीय आउटपुट स्वरुपात देखील लागू होते. हे ध्वजांकन केवळ तेव्हाच परिणाम करेल जेव्हा फील्ड रूंदी ही छपाईसाठी मूल्य पेक्षा मोठी असते.

रूंदी

फील्ड या रुंदी पॅड पाहिजे. फील्ड सामान्यतः मोकळी जागा सह पॅड आहे. जर 0 ध्वज वापरला गेला असेल तर तो शून्यासह पॅड आहे.

. शिष्टाचार

मुद्रण करताना वापरण्यासाठी सुस्पष्टता निर्दिष्ट करणारा एक नंबर. % E , % E आणि % f फॉरमॅटसाठी, हे अंकांची संख्या निर्दिष्ट करते जे आपण दशांश चिन्हाच्या उजवी छापील हवे. % G आणि % G स्वरूपांसाठी, हे महत्त्वपूर्ण अंकांची कमाल संख्या निर्दिष्ट करते. % D , % o , % i , % u , % x , आणि % X स्वरूपांसाठी, हे मुद्रित करण्यासाठी संख्यांची कमीत कमी संख्या निर्दिष्ट करते. % S साठी, ते छापील स्ट्रिंगमधील वर्णांची कमाल संख्या निर्दिष्ट करते.

एएनएसआय सी printf () रुटीनच्या गतिमान रुंदी आणि विशिष्ट क्षमता समर्थित आहेत. A * रूंदीच्या किंवा प्रिपर स्पेसिफिकेशन्सच्या जागी त्यांच्या मूल्यांना वितर्क सूचीमधून printf किंवा sprintf () घेण्याची मुभा मिळते . एका गतिशील रूंदी किंवा सुस्पष्टतासह एक पॉझिटिकल स्पेसीफायर वापरण्यासाठी, * स्वरूप स्ट्रिंगमध्ये * नंतर गणना $ द्या . उदाहरणार्थ, "% 3 $ * 2 $. * 1 $ s" .

विशेष फाइल नावे

I / O रीडायरेक्शन एकतर प्रिंट किंवा printf फाइलमधून किंवा फाईलमधून Getline द्वारे करत असताना , काही विशिष्ट फाईलनामे आंतरिक रूपाने ओळखतात. या फाइलनाव gawk च्या पालक प्रक्रियेतून (सामान्यतः शेल) वारशाने मिळालेल्या फाइल वर्णनकर्त्यांना उघडण्यासाठी प्रवेश परवानगी देते. या फाइल नावांचा वापर डेटा फाईल्सना नावे कमांड लावण्यासाठी केला जाऊ शकतो. फाइलनाव खालीलप्रमाणे आहेत:

/ dev / stdin

मानक इनपुट

/ dev / stdout

मानक आउटपुट.

/ dev / stderr

मानक त्रुटी आउटपुट.

/ dev / fd / n

फाईल खुल्या फाइल डिस्क्रिप्टर n सह संबंधित.

हे विशेषतः त्रुटी संदेशांसाठी उपयुक्त आहेत. उदाहरणार्थ:

प्रिंट "तू हे फुंकलास!" > "/ dev / stderr"

तर आपण इतरथा वापरू लागेल उलटपक्षी

प्रिंट "तू हे फुंकलास!" | "मांजर 1> & 2"

TCP / IP नेटवर्क कनेक्शन तयार करण्यासाठी | & co-process ऑपरेटरसह खालील विशेष फाईलनामे वापरली जाऊ शकतात.

/ inet / tcp / lport / rhost / rport

दूरस्थ पोर्ट रपोर्ट वर दूरस्थ होस्ट शहतीचा कोंबड करण्यासाठी स्थानिक पोर्ट लान्सवरील टीसीपी / आयपी कनेक्शनकरीता फाइल. सिस्टिम पोर्ट निवडण्यासाठी 0 चा पोर्ट वापरा.

/ इनसेट / udp / lport / rhost / rport

तत्सम, परंतु TCP / IP ऐवजी UDP / IP वापरा

/ इनसेट / रॉ / lport / rhost / rport

भविष्यातील वापरासाठी राखीव

इतर विशेष फाईलनामे कार्यरत गोक प्रक्रियेबद्दल माहिती मिळवतात . हे फाईलनाव आता अप्रचलित आहेत. PROCINFO अॅरेचा वापर करून ते माहिती प्रदान करतात. फाइलनाव खालीलप्रमाणे आहेत:

/ dev / pid

ही फाइल वाचल्याने वर्तमान प्रक्रियेचा प्रोसेस आयडी, डेसिमलमध्ये, नवीनलाइनसह समाप्त होईल.

/ dev / ppid

ही फाइल वाचल्याने वर्तमान प्रक्रियेचे मूळ प्रक्रिया आयडी परत मिळते, डेसिमलमध्ये, एका नवीनलाइनसह समाप्त केले जाते

/ dev / pgrpid

ही फाइल वाचत वर्तमान प्रक्रियेचा प्रक्रिया गट ID परत करतो, डेसिमल मध्ये, एक नवीन ओळ बंद.

/ dev / वापरकर्ता

ही फाइल वाचल्याने नवीन रेकॉर्डसह समाप्त असलेला एक रेकॉर्ड परत केला जातो. क्षेत्रे रिक्त स्थानांसह विभक्त आहेत. $ 1 getuid (2) प्रणाली कॉलचे मूल्य आहे, $ 2 geteuid (2) प्रणाली कॉलचे मूल्य आहे, $ 3 getgid (2) प्रणाली कॉलचे मूल्य आहे, आणि $ 4 getegid ची किंमत आहे (2) सिस्टम कॉल जर काही अतिरिक्त क्षेत्र असतील तर ते getgroups (2) द्वारा परत गट आयडी आहेत. सर्व गटांवर एकाधिक गट समर्थित नसू शकतात.

संख्यात्मक कार्ये

AWK मध्ये खालील अंगभूत अंकगणित क्रिया आहेत:

एटन 2 ( वाई , एक्स )

त्रिज्यी मध्ये y / x चा आर्कटॅन्जेट मिळवते.

कॉस ( एक्सपीआर )

एक्सपीरचे कोट्याळ मिळवते जे रेडियन मध्ये आहे

एक्स्प ( एक्सपीआर )

घातांकीय कार्य

इंट ( एक्सपीआर )

पूर्णांकासाठी छप्पन करतो

लॉग ( एक्सपीआर )

नैसर्गिक लॉगेरिथम फंक्शन.

रँड ()

0 आणि 1 दरम्यान एक यादृच्छिक संख्या मिळवते.

पाप ( expr )

रेडियनमध्ये असलेल्या एक्सप्रची साइन मिळवते.

sqrt ( expr )

स्क्वायर रूट फंक्शन.

srand ( [ EXpr ] )

यादृच्छिक संख्या जनरेटर साठी एक नवीन बिया म्हणून expr वापरते. जर EXP पुरविले नसेल तर दिवसाची वेळ वापरली जाते. रिटर्न व्हॅल्यू यादृच्छिक संख्या जनरेटरसाठी मागील बी आहे.

स्ट्रिंग कार्ये

गाव मध्ये खालील अंगभूत स्ट्रिंग फंक्शन्स आहेत:

asort ( s [ , d ] )

स्त्रोत अॅरेतील घटकांची संख्या मिळवते मूल्यांशी तुलना करण्यासाठी गॉकेच्या सामान्य नियमांचा वापर करून सॉकरची सामग्री क्रमवारीत लावली जाते, आणि s चे क्रमवार केलेल्या मूल्यांच्या अनुक्रमांकांची संख्या 1 ने सुरू होणारी क्रमिक पूर्णांकांनी बदलली जाते. जर पर्यायी डेस्टिनेशन अॅरे डी निर्दिष्ट केले असेल, तर प्रथम डी मध्ये डुप्लिकेट केलेले आहे. , आणि नंतर d सॉर्ट केला जातो, स्त्रोत अॅरेच्या निर्देशांकामध्ये अपरिवर्तनीय सोडत असतो.

gensub ( r , s , h [ , t ] )

नियमित अभिव्यक्ती r च्या जुळण्यांसाठी लक्ष्य स्ट्रिंग शोधा. जर जी स्ट्रिंगची सुरुवात जी किंवा जीपासून असेल तर त्यास s च्या सर्व जुळण्या पुनर्स्थित करा. अन्यथा, क्रमांक बदलण्यासाठी r च्या कोणत्या जुळणी दर्शविणारा एक संख्या आहे. टी पुरविले नसल्यास, $ 0 त्याऐवजी वापरला जातो. रिप्लेसमेंट टेक्स्टमध्ये, क्रम \ n , जेथे n हा 1 ते 9 मधील अंक आहे, तो फक्त ' n ' th parenthesized subexpression शी जुळणारा मजकूर दर्शविण्यासाठी वापरला जाऊ शकतो. क्रम \ 0 संपूर्ण जुळलेला मजकूर दर्शविते, जसेच वर्ण आणि . उप () आणि gsub () च्या उलट, सुधारित स्ट्रिंग फंक्शनच्या परिणामी परत मिळविली जाते आणि मूळ लक्ष्य स्ट्रिंग बदलत नाही .

gsub ( r , s [ , t ] )

स्ट्रिंग टी मधील रेग्युलर एक्सप्रेशन r शी जुळणारे प्रत्येक उपस्ट्रिंगसाठी, स्ट्रिंगची जागा घ्या आणि प्रतिस्थापनांची संख्या परत करा. टी पुरविले नसल्यास, $ 0 वापरा पुनर्निर्देशित मजकूराचे एक & त्या वास्तविक जुळलेल्या मजकुराशी पुनर्स्थित केले गेले आहे. शब्दशः प्राप्त करण्यासाठी \ & वापरा (हे "\\" आणि " GAWK " असे टाईप केले जाणे आवश्यक आहे : सबस्क्राईप , जीएसयू () , आणि जीन्सब () च्या प्रतिस्थापनाच्या पानात & s आणि बॅकस्लॅशच्या नियमांची संपूर्ण चर्चा करण्यासाठी प्रभावी AWK प्रोग्रामिंग .)

अनुक्रमणिका ( एस , टी )

स्ट्रिंग मध्ये स्ट्रिंग टी चे इंडेक्स मिळविते, किंवा 0 t अस्तित्वात नसल्यास. (याचाच अर्थ होतो की अक्षरदर्शन एकापासून सुरू होते.)

लांबी ( [ एस ] )

स्ट्रिंगची लांबी , किंवा जर पुरविले नसल्यास $ 0 ची लांबी मिळवते .

सामना ( एस , आर [ , ] )

ज्यावेळी रेग्युलर एक्स्प्रेशन आर येते त्या स्थानावर किंवा 0 असल्यास r नसल्यास आणि RSTART आणि RLENGTH चे मूल्य सेट करते. लक्षात घ्या की वितर्क आदेश, ~ ऑपरेटर साठीच आहे : str ~ re अॅरे प्रदान केले असल्यास, एक साफ केला आहे आणि नंतर घटक 1 ते n हे त्यातील भागांसह भरतात जे r मध्ये संबंधित संयोगवाचक उपविभागाशी जुळतात. एखाद्याच्या 0 च्या घटकामध्ये संपूर्ण रेग्युलर एक्स्प्रेशन r द्वारे जुळलेल्या भागांचा भाग असतो.

विभाजन ( एस , [ , आर ] )

स्ट्रिंग s ला नियमित अभिव्यक्ति r वर ऍरेमध्ये विभाजित करते आणि फील्डची संख्या परत करते. जर आर वगळला तर त्याऐवजी एफएस वापरला जातो. अॅरे प्रथम प्रथम साफ केला आहे. स्प्लिटिंग फिल्ड स्प्लिटिंगसाठी सारखेच वर्तन करते, वर वर्णन केलेले.

स्प्रिंटफ (एफएमटी , एक्सपी -लिस्ट )

एफएमटीनुसार एक्सप्रिंटची छपाई करते, आणि परिणामी स्ट्रिंग परत करते.

strtonum ( str )

Str ची परीक्षा आणि त्याचे अंकीय मूल्य परत करते जर स्ट्रिंगची सुरुवात आघाडी 0 ने होते, तर strtonum () असे गृहीत धरते की str एक octal number आहे. जर स्ट्रिंगची सुरवात 0x किंवा 0x ने सुरू होते, तर strtonum () असे मानते की str हेजाडेसिमल संख्या आहे.

सब ( आर , एस [ , टी ] )

Gsub प्रमाणेच , परंतु केवळ प्रथम जुळणारे सबस्ट्रिंग बदलले आहे.

substr ( s , i [ , n ] )

I वरून सुरू होणार्या जास्तीत जास्त एन- कॅरेंट उपस्ट्रॉर्डस मिळवते. जर एन वगळला असेल, तर उर्वरित सर्व वापरले जाते.

टोलॉवर ( स्ट्रॉ )

स्ट्रॅंग स्ट्रिंगची एक कॉपी मिळवते, ज्यामध्ये त्यांच्या वरील निम्न-केस समकक्षांमध्ये अनुक्रमे सर्व अपर-केस वर्ण असतात. अ-वर्णक्रांती वर्ण न बदललेले आहेत.

टुपर (स्ट्रिंग )

स्ट्रॅंग स्ट्रॅक्शनची कॉपी मिळवते, ज्यामध्ये त्यांच्या निम्न अप्पर-केस समकक्षांमध्ये अनुवादित सर्व लोअर-केस वर्ण असतात. अ-वर्णक्रांती वर्ण न बदललेले आहेत.

वेळ कार्य

एडब्ल्यूके प्रोग्रॅमच्या प्राथमिक वापरापैकी एक म्हणजे लॉग इन स्टॅम्प माहिती असलेल्या लॉग फाइल्सवर प्रक्रिया केल्याने , टाइम स्टॅंप मिळविण्यासाठी आणि त्यांना स्वरूपित करण्यासाठी पुढील कार्ये प्रदान करतात.

एमकेटीएमटी ( तिथीपेक )

सिस्टीम () द्वारे मिळवलेले समान फॉर्मच्या टाइम स्टॅम्पमध्ये तारखा देते तारखांप्रमाणे YYYY MM DD HH MM SS [DST] या स्वरूपाची एक स्ट्रिंग आहे. स्ट्रिंगमधील सामुग्री सहा किंवा सात संख्या अनुक्रमे संपूर्ण वर्ष अनुक्रमे 1, 12, 1 ते 31, महिन्यापासून 0 ते 23, 0 ते 0 पर्यंत 59, आणि दुसरा 0 ते 60, आणि एक पर्यायी डेलाइट सेव्हिंग फ्लॅग या संख्यांच्या मूल्यांना निर्देशित केलेल्या श्रेणींच्या आत असणे आवश्यक नाही; उदाहरणार्थ, 1 तास म्हणजे 1 तास आधी मध्यरात्रीपूर्वी 1. मूळ-शून्य ग्रेगोरियन दिनदर्शिका गृहित धरले आहे, मागील वर्ष 1 आणि वर्ष -1 मागील वर्षीच्या वर्षी 0 आहे. वेळ स्थानिक वेळेक्षेत्रात धरला आहे. प्रकाश बचत ध्वज सकारात्मक असल्यास, वेळ प्रकाश बचत वेळ समजला जातो; शून्य असल्यास, वेळ मानक वेळ मानला जातो; आणि जर नकारात्मक (डीफॉल्ट) असेल तर, mktime () हे निर्धारित करण्याचा प्रयत्न करते की डेलाइट सेव्हिंग वेळ विशिष्ट वेळेसाठी प्रभावी आहे किंवा नाही. तारणपीकमध्ये पुरेशी घटक नसतील किंवा परिणामी वेळ श्रेणीबाहेर असेल तर, mktime () रिटर्न -1.

स्ट्रिपटाइम ( [[[[[[ टाइमस्टॅम्प [] []

स्वरूपातील विनिर्देशानुसार त्यानुसार टाइमस्टॅम्प स्वरूपित करते. टाइमस्टॅम्प सिस्टीम () द्वारे मिळालेले समान फॉर्मचे असावे () . जर टाइमस्टॅम्प गहाळ झाले तर दिवसाची सद्य वेळ वापरली जाते. जर स्वरूप गहाळ आहे, तर तारीख (1) चे आऊटपुट समतुल्य असलेले डीफॉल्ट स्वरूप वापरले जाते. उपलब्ध होण्यासाठी हमी दिलेल्या स्वरूप रूपांतरणासाठी एएनएसआय सी मध्ये स्ट्रिपटाइम () फंक्शनसाठी तपशील पहा. स्ट्रिपटाइम (3) चे सार्वजनिक-डोमेन आवृत्ती आणि त्याच्यासाठी एक मॅन पृष्ठ तयार झाले आहे; जर ती आवृत्ती गोक बनविण्यासाठी वापरली गेली, तर त्या मॅन पृष्ठामध्ये वर्णन केलेले सर्व रूपांतरणे ऐकण्यासाठी उपलब्ध आहेत .

सिस्टिम ()

Epoch पासून (1 971-01-01 00:00:00 UTC POSIX प्रणाल्यांवर) दिवसाची सद्य वेळ म्हणून परत मिळवते.

बिट मॅनिपुलेशन फंक्शन्स

आवृत्ती 3.1 सह प्रारंभ करीत आहे, खालील बिट हाताळणी कार्ये उपलब्ध आहेत. ते अचूक नसलेल्या पूर्णांक संख्यांना दुहेरी-सुस्पष्टता दर्शविणारे बिंदू मूल्ये रूपांतरित करून, ऑपरेशन करत असताना आणि नंतर परिणाम परत फ्लोटिंग पॉईंटमध्ये रुपांतर करून कार्य करते. कार्ये पुढीलप्रमाणे आहेत:

आणि ( v1 , v2 )

V1 आणि v2 द्वारे प्रदान केलेल्या मूल्यांची बिटवर्थ आणि परत या.

शिका ( व्हिल )

Val चा bitwise पूरक परत करा

lshift ( व्हॉल , गणना )

गणना बिट्स ने शिल्लक केलेल्या व्हॅलचे मूल्य परत करा.

किंवा ( v1 , v2 )

V1 आणि v2 द्वारे प्रदान केलेल्या मूल्यांची बिटwise किंवा परत या.

rshift ( व्हॉल , गणना )

व्हरचे मूल्य परत करा, योग्य संख्या मोजणीनुसार हलवा.

xor ( v1 , v2 )

V1 आणि v2 द्वारे प्रदान केलेल्या मूल्यांची थोडकी उजळ करा.

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

आवृत्ती 3.1 च्या प्रारंभानंतर , रन-टाइम वर स्ट्रिंग्सचे भाषांतर करण्यासाठी आपल्या एडब्ल्यूके कार्यक्रमातून खालील फंक्शन्स वापरली जाऊ शकतात. संपूर्ण तपशीलासाठी, GAWK पहा : प्रभावी AWK प्रोग्रामिंग

bindtextdomain ( निर्देशिका [ , डोमेन ] )

निर्देशीत करते की जिव. Mo फायलींसाठी पाहतो, जर ते `` मानक '' स्थानांवर (उदा. चाचणीदरम्यान) ठेवले जाणार नाहीत किंवा जाणार नाहीत हे निर्देशिका जिथे जिथे `` बंधनकारक आहे '' परत करते. ''

डीफॉल्ट डोमेन हे TEXTDOMAIN चे मूल्य आहे. जर निर्देशिका शून्य स्ट्रींग असेल ( "" ), तर बिंद्टेक्स्टडोमेन () दिलेल्या डोमेनसाठी सध्याची बाध्यता परत करते.

dcgettext ( स्ट्रिंग [ , डोमेन [ , श्रेणी ]] )

लोकॅल श्रेणी श्रेणीसाठी मजकूर डोमेन डोमेनमध्ये स्ट्रिंगचे भाषांतर मिळवते. डोमेनसाठी डीफॉल्ट मूल्य हे TEXTDOMAIN चे वर्तमान मूल्य आहे. श्रेणीसाठी डीफॉल्ट मूल्य "LC_MESSAGES" आहे

आपण श्रेणीसाठी मूल्य पुरवल्यास, तो GAWK: प्रभावी AWK प्रोग्रामिंगमध्ये वर्णन केलेल्या ज्ञात लोकॅल श्रेणींच्या समान एक स्ट्रिंग असणे आवश्यक आहे. आपण मजकूर डोमेन देखील प्रदान करणे आवश्यक आहे आपण वर्तमान डोमेन वापरू इच्छित असल्यास TEXTDOMAIN वापरा.

dcngettext ( स्ट्रिंग 1 , स्ट्रिंग 2 , संख्या [ , डोमेन [ , श्रेणी ]] )

लोकॅल श्रेणी श्रेणीसाठी मजकूर डोमेन डोमेनमध्ये स्ट्रिंग 1 आणि स्ट्रिंग 2 च्या अनुवादाच्या संख्येसाठी वापरली जाणारी अनेकवचनी स्वरूप मिळवते. डोमेनसाठी डीफॉल्ट मूल्य हे TEXTDOMAIN चे वर्तमान मूल्य आहे. श्रेणीसाठी डीफॉल्ट मूल्य "LC_MESSAGES" आहे

आपण श्रेणीसाठी मूल्य पुरवल्यास, तो GAWK: प्रभावी AWK प्रोग्रामिंगमध्ये वर्णन केलेल्या ज्ञात लोकॅल श्रेणींच्या समान एक स्ट्रिंग असणे आवश्यक आहे. आपण मजकूर डोमेन देखील प्रदान करणे आवश्यक आहे आपण वर्तमान डोमेन वापरू इच्छित असल्यास TEXTDOMAIN वापरा.

USER- निश्चित कार्ये

AWK मधील फंक्शन्स खालील प्रमाणे परिभाषित आहेत:

कार्य नाव ( पॅरामीटर सूची ) { statements }

फंक्शन्स कार्यान्वित होतात जेव्हा ते एकतर नमुन्यामध्ये किंवा कृतींमध्ये अभिव्यक्तीतून म्हणतात. फंक्शन कॉलमध्ये पुरविलेले वास्तविक पॅकेजेस फंक्शन मध्ये घोषित केलेले औपचारिक पॅरामीटर इन्स्तांत करण्यासाठी वापरले जातात. संदर्भानुसार ऍरे पास केले जातात, इतर व्हेरिएबल्स व्हॅल्यूद्वारे पास केलेले असतात.

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

फंक्शन फ (पी, क्यू, ए, बी) # ए आणि बी स्थानिक आहेत {...} / एबीसी / {...} एफ (1, 2); ...}

फंक्शन कॉलमध्ये डाव्या कंस किंवा फॉरवर्ड कॉलचे फंक्शनचे नाव ताबडतोब अनुसरण करणे आवश्यक आहे. हे संयुक्ती ऑपरेटरसह एक वाक्यरचनात्मक संदिग्धता टाळण्यासाठी आहे. हे प्रतिबंध वर सूचीबद्ध केलेल्या अंगभूत कार्यांवर लागू होत नाही.

फंक्शन्स एकमेकांना कॉल करू शकतात आणि रिकर्सिव्ह असू शकतात. लोकल व्हेरिएबल्स म्हणून वापरलेले फंक्शन परिमाणे शून्य स्ट्रिंगला सुरुवात केली जातात आणि फंक्शन अॅव्होकेशनवर नंबर शून्य.

फंक्शनमधील मूल्य परत करण्यासाठी रिटर्न एक्स्पोर्ट वापरा. कोणतेही मूल्य प्रदान केलेले नसल्यास परतीचे मूल्य अपरिभाषित केले जाते, किंवा शेवटचे `बंद होण्यापासून 'फंक्शन परत येत असल्यास

- जर लिनट पुरविले गेले असेल तर, रन टाइमवर ऐवजी पॅर्स् टाइममध्ये अपरिभाषित फंक्शन्सकरिता कॉलबद्दल चेतावणी देते. रन वेळेवर एक अपरिभाषित फंक्शन कॉल करणे ही एक गंभीर त्रुटी आहे.

फंक्शनच्या जागी Func शब्द वापरला जाऊ शकतो.

नवीनपणे नवीन कार्ये लोड करणे

Gawk च्या आवृत्ती 3.1 च्या सुरूवातीस , आपण कार्यरत गॉक इंटरप्रिटरला गतिकरित्या नवीन अंगभूत कार्ये जोडू शकता. संपूर्ण माहिती या हस्तपुस्तकाच्या पानाच्या बाहेर आहे; पहा GAWK: तपशीलासाठी प्रभावी AWK प्रोग्रामिंग .

विस्तार ( ऑब्जेक्ट , फंक्शन )

गतिशीलपणे ऑब्जेक्टचे नाव असलेल्या शेअर्ड ऑब्जेक्ट फाइलला लिंक करा, आणि त्या ऑब्जेक्ट मध्ये फंक्शन लाँच करा, प्रारंभ करण्यासाठी हे दोन्ही स्ट्रिंग म्हणून प्रदान केले गेले पाहिजे. कार्याद्वारे मिळालेले मूल्य परत मिळवते

हा फंक्शन GAWK मध्ये प्रदान केला आहे आणि प्रभावी आहे: प्रभावी AWK प्रोग्रमिंग , परंतु या वैशिष्ट्याविषयी सर्व काही पुढील रिलीझमध्ये बदलण्याची शक्यता आहे. आम्ही शिफारस करतो की आपण या वैशिष्ट्याचा वापर त्या कोणत्याही गोष्टीसाठी करू नका जे आपण पुन्हा करू इच्छित नाही.

सिग्नल

pgawk दोन संकेत स्वीकारतो. SIGUSR1 प्रोफाइल फाइलमध्ये प्रोफाइल आणि फंक्शन कॉल स्टॅक डंप करते, जे एकतर awkprof.out आहे , किंवा --profile पर्यायसह फाइलचे नाव. हे नंतर चालत आहे. SIGHUP तो प्रोफाइल आणि फंक्शन कॉल स्टॅक डंप करते आणि नंतर बाहेर पडतो.

उदाहरणे

सर्व वापरकर्त्यांची लॉगइन नावे मुद्रित आणि क्रमवारी लावा : BEGIN {FS = ":"} {मुद्रण $ 1 | "क्रमवारी लावा "} फाईलमध्ये ओळींची गणना करा: {nlines ++} END {print nlines} प्रत्येक ओळीने त्याच्या ओळद्वारे फाईलमध्ये पुढीलप्रमाणे: {print FNR, $ 0} कन्सएनेटनेट आणि लाइन नंबर (थीमवर भिन्नता): {print NR, $ 0}

आंतरिककरण

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

gawk 'BEGIN {print "हॅलो, जग"}'

नेहमी हॅलो छापतो , जग . परंतु,

gawk 'BEGIN {print _ "हॅलो, जग"}'

फ्रान्समध्ये बेस्ट, मॉन्डे प्रिंट करू शकते

एक स्थानिक एएडब्ल्यूके कार्यक्रम तयार आणि चालविण्यात अनेक पावले आहेत.

1

आपल्या डोमेनशी संबंधित एका नावात मजकूर डोमेन सेट करण्यासाठी TEXTDOMAIN व्हेरिएबलला मूल्य निश्चित करण्यासाठी BEGIN क्रिया जोडा.


BEGIN {TEXTDOMAIN = "myprog"}

हे gawk आपल्या प्रोग्रामशी संबद्ध .mo फाइल शोधण्यासाठी परवानगी देते. या पायरी शिवाय, संदेश पाठ संदेश डोमेन वापरतात, ज्यात संभाव्यतया आपल्या कार्यक्रमासाठी अनुवाद नसतात.

2

सर्व स्ट्रिंग चिन्हांकित करा जे अग्रक्रमाने भाषांतरित केले जावे.

3

आवश्यक असल्यास, योग्य म्हणून आपल्या प्रोग्राममधील dcgettext () आणि / किंवा बाइंडटेक्स्टडोमेन () फंक्शन्स वापरा .

4

आपल्या प्रोग्रॅमसाठी. Po फाइल निर्माण करण्यासाठी मायक्रॉप.पो - जीओपी - जीन - पीओ -एफ मायप्रोग .

5

योग्य भाषांतर द्या आणि संबंधित .mo फाइल तयार करा आणि स्थापित करा.

आंतरराष्ट्रीयकरण वैशिष्ट्ये GAWK मध्ये पूर्ण तपशील वर्णन आहेत : प्रभावी AWK प्रोग्रामिंग .

पॉझिक्स सुसंगतता

गोक साठी एक प्राथमिक उद्दीष्ट POSIX मानक सह सुसंगतता आहे, तसेच UNIX awk च्या नवीनतम आवृत्तीसह. हे करण्यासाठी, एओडब्ल्यूके पुस्तकात वर्णन न केलेल्या खालील वापरकर्त्याची दृश्यमान वैशिष्ट्ये समाविष्ट करते, परंतु ते अॅकचे बेल लेबोरेटरीजच्या आवृत्तीचे भाग आहेत, आणि POSIX मानक आहेत.

पुस्तक सूचित करते की कमांड लाइन व्हेरिएबल असाइन होते जेव्हा अजाण अन्यथा आर्ग्युमेंट फाइल म्हणून उघडते, जे BEGIN ब्लॉक कार्यान्वित झाल्यानंतर असते. तथापि, पूर्वीच्या लागूकरणांमध्ये, जेव्हा अशा एखाद्या असाइनमेंटने कोणत्याही फाइल नावापूर्वी प्रकट केले असते तेव्हा, असाइनमेंट आधीपासूनच BEGIN ब्लॉक चालवण्याआधी होईल. अनुप्रयोग हे `` वैशिष्ट्य वर अवलंबून होते. '' जेव्हा त्याच्या दस्तऐवजीकरणाशी जुळण्यासाठी awk बदलले गेले, तेव्हा कार्यक्रम अंमलबजावणीपूर्वी व्हेरिएबल्स वाटप करण्यासाठी -v पर्याय जुन्या वर्तनावर अवलंबून असलेल्या अनुप्रयोगांना सामावून घेण्यासाठी जोडण्यात आले. (हे वैशिष्ट्य बेल लेबोरेटरीज आणि जीएनयू विकासक दोघांनी मान्य केले होते.)

अंमलबजावणी विशिष्ट वैशिष्ट्ये अंमलबजावणी -W पर्याय POSIX मानक आहे.

आर्ग्यूमेंट्स प्रक्रिया करताना, आर्ग्युमेंट्सचा सिग्नल सिग्नल करण्यासाठी ' एप -' 'विशेष पर्याय वापरतो. सुसंगतता मोडमध्ये, त्याबद्दल चेतावणी देते परंतु अन्यथा अपरिभाषित पर्याय दुर्लक्ष करते. सामान्य ऑपरेशनमध्ये, अशा प्रकारचे तर्क एओडब्ल्यूके कार्यक्रमास कार्यान्वित करण्यासाठी पाठवले जातात.

AWK पुस्तक srand चे रिटर्न मूल्य निश्चित करीत नाही () . यादृच्छिक संख्या अनुक्रमांचा मागोवा ठेवण्याची परवानगी देण्यासाठी POSIX मानकाने ते वापरत असलेल्या बियाणे परत केले आहेत. या शब्दामध्ये सारंश () सद्यस्थितीत सध्याच्या बीजास परत मिळते.

इतर नवीन वैशिष्ट्ये अशी आहेत: एकाधिक -f पर्यायांचा वापर (एमकेएस एव्हीके मधून ); एव्हिरॉन अॅरे; \ a , आणि \ v escape sequences (मूलतः सुरुवातीस आणि बेल लेबोरेटरीजच्या आवृत्तीमध्ये परत दिले गेले); tolower () आणि टुपर () अंगभूत कार्ये (बेल लेबोरेटरीज आवृत्ती पासून); आणि printf मधील ANSI C रूपांतरण वैशिष्ट्य (बेल लेबोरेटरीजच्या आवृत्तीमध्ये प्रथम केले आहे).

ऐतिहासिक वैशिष्ट्ये

ऐतिहासिक AWK च्या दोन वैशिष्ट्यांपैकी दोन वैशिष्ट्ये आहेत जी गॉक समर्थन देतात. प्रथम, लांबी कॉल करणे शक्य आहे () अंगभूत कार्य नाही फक्त एकही वितर्क नसतो, पण अगदी कंस शिवाय देखील! अशा प्रकारे,

ए = लांबी # पवित्र Algol 60, बॅटमॅन!

यापैकी एकतर सारखेच आहे

ए = लांबी ()
ए = लांबी ($ 0)

POSIX मानकमध्ये हे गुणविशेष ` डिअॅक्टेड 'म्हणून चिन्हांकित केले आहे, व आदेश वापरण्यावर --lint निर्देशीत केल्यास gawk वापरणीविषयी सावधानता दर्शविते .

इतर वैशिष्ट्य म्हणजे सुरू असलेल्या किंवा ब्रेक स्टेटमेन्टचा वापर काही काळ शरीराच्या बाहेर, साठी , किंवा करू नका . पारंपारिक एडब्ल्यूके च्या कार्यान्वयनेने पुढील विधानाच्या समतुल्य असा वापर केला आहे. --traditional निर्देशीत केले असल्यास Gawk या वापर करीता समर्थन पुरवते.

GNU विस्तार

Gawk कडे POSIX एन्कोड करण्यासाठी अनेक विस्तार आहेत. ते या विभागात वर्णन आहेत. येथे वर्णित केलेले सर्व विस्तार - - वैकल्पिक पर्याय वापरून गॉक्स द्वारे अक्षम केले जाऊ शकतात.

भोवळ खालील वैशिष्ट्ये POSIX मध्ये उपलब्ध नाहीत.

*

-f पर्यायद्वारे नावाच्या फाइल्ससाठी मार्ग शोध नाही. त्यामुळे AWKPATH पर्यावरण वेरियेबल विशेष नाही.

*

\ X सुटलेला क्रम ( --posix सह अक्षम.)

*

फफ़ल () फंक्शन. ( --posix सह अक्षम.)

*

नंतर ओळी सुरू ठेवण्याची क्षमता ? आणि :. ( --posix सह अक्षम.)

*

AWK प्रोग्राममध्ये अष्टक आणि हेक्साडेसिमल स्थिरांक

*

ARGIND , BINMODE , ERRNO , LINT , RT आणि TEXTDOMAIN व्हेरिएबल्स विशिष्ट नाहीत.

*

IGNORECASE वेरियेबल आणि त्याचे दुष्परिणाम उपलब्ध नाहीत.

*

FIELDWIDTHS वेरियेबल आणि निश्चित-रुंदीचे फील्ड विभाजन.

*

PROCINFO अॅरे उपलब्ध नाही.

*

आरएसचा नियमित अभिव्यक्ती म्हणून वापर

*

I / O पुनर्निर्देशन करीता उपलब्ध विशेष फाइल नावे ओळखली जात नाहीत.

*

सह-प्रक्रिया तयार करण्यासाठी | & ऑपरेटर

*

FS चे मूल्य म्हणून निरर्थक स्ट्रिंग वापरुन स्वतंत्र वर्ण वेगळे करणे आणि विभाजित करणे ( तिसरे ) आर्ग्यूमेंट म्हणून

*

बंद () फंक्शनला वैकल्पिक दुसरा वितर्क.

*

मॅच () फंक्शनमध्ये पर्यायी तिसरा वितर्क.

*

Printf आणि sprintf () सह स्थितीसूचक वर्णन वापरण्याची क्षमता

*

अॅरेच्या संपूर्ण सामग्रीस हटवण्यासाठी अॅलच्या हटविण्याचे वापर.

*

वर्तमान इनपुट फाईलवर प्रक्रिया करण्याचे सोडून देण्यासाठी पुढील फाईलचा वापर करा.

*

आणि () , asort () , बाईंडटेक्स्टडोमेन () , कॉल () , डीसीजीटेक्स्ट () , गेन्सब () , लिशीफ्ट () , एमकेटीआयटी () , किंवा () , आरशिफ्ट () , स्ट्रिपटाइम () , स्ट्रटोनम () , सिस्टिम () आणि xor () कार्ये

*

स्थानीक करण्यायोग्य स्ट्रिंग

*

विस्तार () फंक्शनसह गतिकरित्या नवीन अंगभूत कार्ये जोडणे.

AWK पुस्तक बंद () फंक्शनचे रिटर्न मूल्य परिभाषित करत नाही. Gawk चे बंद () अनुक्रमे फेक्लो (3), किंवा पक्कोसला (3), जेव्हा आउटपुट फाइल किंवा पाइप बंद करते तेव्हाचे मूल्य मिळवते. इनपुट पाइप बंद करताना प्रक्रियेची निर्गमन स्थिती परत करते. पुनर्निर्देशनाने नामित फाइल, पाइप किंवा सह-प्रक्रिया उघडली नसल्यास परतावा मूल्य -1 आहे.

जेव्हा -traditional पर्यायसह जबरदस्ती केली जाते, जर -फ ऑप्शनमधील fs अर्ग्युमेंट `` टी '' असेल, तर एफएस टॅबवरील वर्णांवर सेट आहे. लक्षात ठेवा की टायपिंग गॉक -एफ टी \ t ... फक्त शेल `` टी, '' चे उद्धृत करते, आणि `` टी पर्याय '' ला `` \ t '' पास करता येत नाही. हे एक अतिशय बदके विशेष केस असल्याने, हे डीफॉल्ट वर्तन नाही. हे वर्तन देखील उद्भवत नाही जर --posix निर्देशीत केले गेले आहे. एक टॅब वर्ण खरोखर फील्ड विभाजक म्हणून प्राप्त करण्यासाठी, सिंगल कोट्स वापरणे सर्वोत्तम आहे: gawk -F '\ t' ....

अन्य आज्ञा पहा : प्रतीक्षा , एलपी , पूर्ण , execv , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , स्वॅपोन , autofs , talk , motd , free , lpr , execl , fdisk , at , कोण , iwconfig , ifconfig , vgdisplay , उघडा , lsmod , ntohs , मेलक , किल , wtmp