लिनक्स आदेश - गक सिक्नुहोस्

नाम

गके - ढाँचा स्क्यानिङ र भाषा प्रशोधन गर्दै

सारांश

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

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

विवरण

Gawk GNU परियोजना AWK प्रोग्रामिङ भाषाको कार्यान्वयन हो। यो POSIX 1003.2 कमान भाषा र उपयोगिता मानकमा भाषाको परिभाषा अनुरूप गर्दछ। यो संस्करण बारी मा AWK प्रोग्रामिंग भाषा , आमो, केर्नघेन र विन्डेरगर द्वारा विवरण मा आधारित छ, UNIX awk को System V रिलीज 4 संस्करण मा पाइने अतिरिक्त सुविधाहरु संग। गोकले पनि हालैको बेल प्रयोगशालाका अङ्क विस्तारहरू, र धेरै GNU-specific विस्तार प्रदान गर्दछ।

Pgawk गकको प्रोफाइल संस्करण हो। यो गक को हरेक तरिका मा एक समान छ, बरु प्रोग्रामहरु लाई अधिक धीरे धीरे चलािन्छ, र यो स्वचालित रूप देखि फाइल को निष्पादन प्रोफाइल को उत्पादन गर्दछ जब awkprof.out । - प्रोफाइल विकल्प हेर्नुहोस्, तल।

कमांड लाइनले स्वचालित रूपमा गक गर्न विकल्पहरू समावेश गर्दछ, AWK कार्यक्रम पाठ (यदि एफ-एफ वा फाईल विकल्पहरू द्वारा प्रदान नगरिएको छैन), र मानहरू ARGCARGV पूर्व-परिभाषित AWK चरमा उपलब्ध मानहरू।

विकल्प ढाँचा

Gawk विकल्पहरू या त पारंपरिक POSIX एक अक्षर विकल्प हुन सक्छ, वा GNU शैली लामो विकल्प हुन सक्छ। POSIX विकल्प एकल `` - '' सँग सुरू हुन्छ, जबकि लामो विकल्प `` - '' सँग सुरु हुन्छ। लामो विकल्पहरू GNU-विशेष सुविधाहरू र POSIX-mandated विशेषताहरूका लागि प्रदान गरिएको छ।

POSIX मानक पछि, गोक- विशिष्ट प्रमाणहरू तर्कहरू मार्फत -W विकल्पमा आपूर्ति गरिन्छ। बहु -W विकल्पहरू आपूर्ति गर्न सकिन्छ प्रत्येक -W विकल्पसँग एक लामो लामो विकल्प छ, जस्तै तलका विस्तृत। लामो विकल्पहरूमा तर्कहरू एक = चिन्ह द्वारा विकल्पमा सामेल छन्, कुनै हस्तक्षेप ठाउँको साथ, वा तिनीहरू अर्को आदेश लाइन तर्कमा प्रदान गर्न सकिन्छ। लामो विकल्प संक्षिप्त हुन सक्छ, जब सम्म संक्षिप्त नामको रूपमा अनुपस्थित छ।

विकल्पहरू

Gawk ले निम्न विकल्पहरू स्वीकार गर्छ, वर्णमाला सूचीबद्ध।

-F fs

--फिल्ड-विभाजक fs इनपुट फिल्ड विभाजकका लागि एफएस प्रयोग गर्नुहोस् ( एफएस पूर्वनिर्धारित चरको मान)।

-V var = val

- vign = val असमान गर्नुहोस् कार्यक्रमको कार्यान्वयन सुरु गर्नु चर चरको मूल्य मान। यस्तो चर मानहरू AWK कार्यक्रमको BEGIN ब्लकमा उपलब्ध छन्।

-f कार्यक्रम-फाइल

--फाइल प्रोग्राम-फाइल AWK प्रोग्राम स्रोत फाइल आदेश -फाईलबाट फर्काउनुहोस् , यसको सट्टा पहिलो आदेश रेखा तर्कको सट्टा। बहु - एफ (वा --फाइल ) विकल्पहरू प्रयोग गर्न सकिन्छ।

-mf NNN

एनआरएन एनएनएनले विभिन्न मेमोरी सीमाहरूलाई मान NNN सेट गर्नुहोस्। फ्लै ध्वजले अधिकतम संख्याको फिल्डहरू सेट गर्छ, र r फ्ल्यागलाई अधिकतम रेकर्ड आकार सेट गर्दछ। यी दुई झण्डाहरू र -एम विकल्प युनिक्स अर्कको बेल प्रयोगशालाओं अनुसन्धान अनुसन्धान संस्करणबाट हुन्छन्। तिनीहरू गक द्वारा बेवास्ता गरिन्छ, किनकि गकसँग कुनै पूर्व परिभाषित सीमा छैन।

-W compat

-W पारंपरिक

- सम्झौता

--अन्तकाल संगतता मोडमा चलाउनुहोस्। संगतता मोडमा, गोकले युनिक्स अर्क रूपमा समान व्यवहार गर्दछ; कुनै पनि GNU-specific एक्स्टेन्सनहरू पहिचान गरिएका छन्। यस विकल्पको अन्य ढाँचाहरूमा --ल्टैड्युअलको प्रयोगलाई प्राथमिकता दिइएको छ। थप जानकारीको लागि, तल, GNU EXTENSIONS हेर्नुहोस्।

-W copyleft

-W प्रतिलिपि अधिकार

--copyleft

--कोपीराइटले निर्गत उत्पादनमा GNU प्रतिलिपि अधिकार सूचना सन्देशको छोटो संस्करण छाप्छ र सफलतापूर्वक बाहिर निस्कन्छ।

-W डम्प-चरहरू [ = फाईल ]

--dump-variables [ = फाइल ] विश्वव्यापी चरको एक क्रमबद्ध सूची प्रिन्ट गर्नुहोस् , उनीहरूको प्रकारहरू र फाईलहरूमा अन्तिम मानहरू। यदि कुनै फाइल उपलब्ध छैन भने, गोकले हालको डाइरेक्टरीमा awkvars.out नाम गरेको फाईल प्रयोग गर्दछ।

सबै विश्वव्यापी चरको सूची भएको तपाईंको प्रोग्राममा टाइपोग्राफिक त्रुटिहरू हेर्नको लागि एक राम्रो तरिका हो। यदि तपाईंसँग धेरै प्रकार्यहरूसँग ठूलो कार्यक्रम छ भने तपाइँ यो विकल्प पनि प्रयोग गर्नुहुनेछ, र तपाइँ निश्चित गर्न चाहानुहुन्छ कि तपाईंको प्रकार्यहरूले अनियमित रूपमा विश्वव्यापी रूपमा परिभाषित विश्वव्यापी चर प्रयोग गर्दैनन्। (यो सामान्य चर नामहरू जस्तै i , j , र यति जस्तै बनाउन को लागि एक विशेष गल्ती हो।)

-W मद्दत

-W उपयोग

--help

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

-W lint [ = घातक ]

--लिङ्क [ = घातक ] अन्यAWK कार्यान्वयनहरूमा दुर्व्यवहार वा गैर-पोर्टेबल निर्माण गर्ने बारेमा चेतावनी प्रदान गर्नुहोस्। घातक को वैकल्पिक तर्क संग, लंट चेतावनी को घातक त्रुटिहरु बनी। यो कठोर हुन सक्छ, तर यो प्रयोगले निश्चित रूपमा AWK कार्यक्रमहरूको विकासलाई प्रोत्साहित गर्नेछ।

-W lint-old

--लिङ्क-पुरानो युनिक्स अर्कको मूल संस्करणमा पोर्टेबल योग्य निर्माणहरूको बारेमा चेतावनी प्रदान गर्नुहोस्।

-W gen-po

--gen-po स्कैन र AWK कार्यक्रमलाई पार्स गर्नुहोस्, र कार्यक्रममा सबै स्थानीय योग्य तारहरूको लागि प्रविष्टिहरूको साथ मानक आउटपुटमा एक जीएनयू .po ढाँचा फाइल उत्पन्न गर्नुहोस्। कार्यक्रम आफैलाई क्रियान्वित गरिएको छैन। .po फाइलहरूमा थप जानकारीको लागि GNU gettext वितरण हेर्नुहोस्।

-W गैर-दशमलव-डेटा

--न-दशमलव-डेटा आगत डेटा र इनपुट डेटामा हेक्साडेसिमल मानहरू पहिचान गर्नुहोस्। यो सावधानी को साथ सावधानीपूर्वक प्रयोग गर्नुहोस्!

-W posix

--posix यो अनुकूलता मोड मा परिवर्तन गर्दछ, निम्नलिखित अतिरिक्त प्रतिबंध संग:

*

\ x सेकेन्ड अनुक्रमहरू पहिचान भएन।

*

FS एकल स्पेसमा सेट भएको बेला फिल्ड विभाजकको रूपमा केवल स्पेस र ट्याब कार्य, नयाँलाइन होइन।

*

तपाईं पछि लाइनहरू जारी गर्न सक्नुहुन्न ?:।

*

कीवर्ड प्रकार्यको लागि पर्याय func पहिचान गरिएको छैन।

*

संचालक **** = ^^ = को स्थानमा प्रयोग गर्न सकिँदैन।

*

Fflush () प्रकार्य उपलब्ध छैन।

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

--profile [ = prof_file ] प्रोफाइल_ profile प्रोफाइलमा पठाउनुहोस्। पूर्वनिर्धारित awkprof.out हो । जब गक संग चलिरहेको छ , यो प्रोफाईल केवल कार्यक्रम को एक `` सुन्दर मुद्रित '' संस्करण हो। जब pgawk संग चलाउछ , प्रोफाइलमा प्रत्येक कार्यक्रमको निष्पादन गणनाहरू बाँया मार्जिन र प्रकार्य कल गणनाहरूमा प्रत्येक प्रयोगकर्ता-परिभाषित प्रकार्यको लागि कार्यक्रम समावेश गर्दछ।

-W पुन: अन्तराल

--रे-अन्तराल नियमित रूपमा नियमित अभिव्यक्ति मिलानमा अन्तराल अभिव्यक्तिको प्रयोग सक्षम गर्नुहोस् ( नियमित अभिव्यक्तिहरू , तल हेर्नुहोस्)। एएफके भाषामा अन्तराल अभिव्यक्ति पारंपरिक रूपमा उपलब्ध थिएनन्। POSIX मानकले तिनीहरूलाई थप्यो, अर्क बनाउन र एक उदाहरण संग उदास । यद्यपि, उनीहरूको प्रयोग पुरानो AWK कार्यक्रमहरू रोक्न सम्भव छ, त्यसैले गकले तिनीहरूलाई मात्र प्रदान गर्दछ यदि तिनीहरू यो विकल्पसँग अनुरोध गरिन्छ, वा जब - एक्सपिक्स निर्दिष्ट गरिएको छ।

-W स्रोत कार्यक्रम-पाठ

- स्रोत कार्यक्रम-पाठ प्रयोग कार्यक्रम - AWK कार्यक्रम स्रोत कोडको रूपमा पाठ । यो विकल्पले लाईब्रेसन प्रकार्यहरूको सजिलो intermixing लाई अनुमति दिन्छ ( -f--फाइल विकल्पहरू मार्फत प्रयोग गरिएको) स्रोत कोडको साथ आदेश रेखामा प्रविष्ट गरिएको। यो मुख्यतया माध्यमिक रूपमा ठूलो AWK प्रोग्रामहरू हो जुन शेल लिपिहरूमा प्रयोग गरिन्छ।

-W संस्करण

- मानक आउटपुट मा गक को यस विशेष प्रतिलिपि को लागि संस्करण प्रिंट संस्करण जानकारी। यो मुख्यतया उपयोगी छ यदि तपाईको प्रणालीमा गकको हालको प्रतिलिपि जुन नि: शुल्क सफ्टवेयर फाउण्डेसन वितरण गरिन्छ को सम्बन्धमा मिति छ। बगहरू रिपोर्ट गर्दा यो पनि उपयोगी छ। ( GNU कोडिङ मानकको अनुसार , यी विकल्पहरू तत्काल, सफल निकासको कारण हो।)

- विकल्पहरूको अन्त सिग्नल गर्नुहोस्। यो अधिक तर्कहरूलाई AWK कार्यक्रममा एक `` - '' संग सुरु गर्न अनुमति दिन उपयोगी छ। यो मुख्यतया स्थिरता को लागि अधिकतर POSIX कार्यक्रमहरु द्वारा उपयोग को उपयोग को आलेख को पार्सिंग संग छ।

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

AWK कार्यक्रम निष्कर्ष

एक AWK कार्यक्रममा ढाँचा-कार्य विवरणहरू र वैकल्पिक प्रकार्य परिभाषाहरूको अनुक्रम समावेश छ।

pattern { action statements }

प्रकार्य नाम ( परिमिति सूची ) { बयान }

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

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

Gawk ले निम्न अर्डरमा AWK प्रोग्रामहरू कार्यान्वयन गर्दछ। पहिलो, v- option को माध्यम ले निर्दिष्ट सबै चर कार्य असाइन गरियो। अर्को, गोकले कार्यक्रमलाई आन्तरिक रूपमा ढाँचा बनाउँछ। त्यसपछि, गक कोडले BEGIN ब्लक (हरू) (यदि कुनै) मा कार्य गर्दछ, र त्यसपछि ARGV array मा नाम प्रत्येक फाइल पढ्ने आय। यदि आदेश रेखामा नाम दिइएको फाइलहरू छैनन् भने, गक मानक इनपुट पढ्छ।

यदि कमानरेखामाफाइलनाममा form var = val यो चर असाइनमेन्टको रूपमा व्यवहार गरिएको छ। चर var मान वैल नियुक्त गरिनेछ। (यो कुनै पनि BEGIN ब्लकहरू चलाउन पछि हुन्छ।) आदेश रेखा चर असाइनमेंट मानहरू गतिशील रूपमा मानहरू असक्षम गर्न को लागि सबै भन्दा उपयोगी छ AWK प्रयोग गर्ने क्षेत्रहरू र रेकर्डहरू कसरी बिस्तारै नियन्त्रण गर्न प्रयोग गर्दछ। यो राज्य नियन्त्रित गर्न पनि उपयोगी छ यदि एक एकल फाइल फाईलमा धेरै पासको आवश्यकता पर्दछ।

यदि ARGV को एक विशेष तत्वको मान खाली छ ( "" ), गक यो माथि स्किप गर्दछ।

इनपुटमा प्रत्येक रेकर्डको लागि, गक परीक्षणहरू हेर्नका लागि यदि AWK कार्यक्रममा कुनै पनि ढाँचा मेल खाँदैन। प्रत्येक ढाँचाको लागि रेकर्ड म्याचको लागि, सम्बन्धित कार्य निष्पादित गरिएको छ। यो कार्यक्रममा कार्यक्रममा लागी क्रममा परीक्षणहरू परीक्षण गरिएको छ।

अन्तमा, सबै आगत समाप्त भएपछि, गकले कोडलाई अन्त ब्लक (हरू) मा यदि कार्य गर्दछ।

चर, रेकर्ड, र फिल्डहरू

AWK चरम गतिशील हो; तिनीहरू अस्तित्वमा आइपुगेका हुन्छन् जब तिनीहरू पहिलो पटक प्रयोग हुन्छन्। तिनीहरूको मूल्यहरु या त अस्थायी-बिन्दु संख्याहरू वा तारहरू, वा दुवै हुन्, उनीहरूले कसरी प्रयोग गरिन्छ भन्ने आधारमा। AWK सँग एक आयामी arrays पनि छन्; बहु आयामहरूको साथमा arrays सिमुलेटेड हुन सक्छ। धेरै पूर्व परिभाषित चरहरू कार्यक्रम सञ्चालनको रूपमा सेट गरिएको छ; यी आवश्यक अनुसार वर्णन गरिनेछ र तल संक्षेप।

रेकर्डहरू

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

फिल्डहरू

को रूपमा प्रत्येक इनपुट रेकर्ड पढिएको छ, गकले फील्डलाई फिल्डमा विभाजन गर्दछ, FS चरको मान फिल्ड विभाजकको रूपमा प्रयोग गरी। यदि एफएस एक क्यारेक्टर हो भने, क्षेत्रहरू त्यो क्यारेक्टरबाट विभाजित हुन्छन्। यदि एफएस निलङ स्ट्रिङ हो भने, त्यसपछि प्रत्येक व्यक्ति क्यारेक्टरलाई अलग क्षेत्र हुन्छ। अन्यथा, एफएसको पूर्ण नियमित अभिव्यक्तिको अपेक्षा गरिएको छ। विशेष मामला मा FS एक एकल स्थान हो, क्षेत्र रिक्त स्थानहरु र / या टैब र / या newlines द्वारा विभाजित छ। (तर छलफलको छलफल हेर्नुहोस् --पिक्सिक्स , तल)। नोट: IGNORECASE को मूल्य (तल हेर्नुहोस्) एफएस नियमित अभिव्यक्तिमा कसरी विभाजित हुन्छ भनेर प्रभाव पार्छ, र नियमित अभिव्यक्ति हो जब रेकर्ड अलग हुन्छ कसरी।

यदि FIELDWIDTHS चर संख्याको अन्तरिक्ष विभाजित सूचीमा सेट गरिएको छ भने प्रत्येक फिल्ड निश्चित चौडाइको अपेक्षा गरिएको छ, र गोक निर्दिष्ट चौडाइको प्रयोग गरेर रेकर्ड विभाजित गर्दछ। एफएसको मूल्य बेवास्ता गरिएको छ। FS को लागि नयाँ मान असाइन गर्दै FIELDWIDTHS को प्रयोग ओवरराइड गर्दछ, र पूर्वनिर्धारित व्यवहार पुनर्स्थापित गर्दछ।

आगत रेकर्डमा प्रत्येक क्षेत्र यसको स्थिति, $ 1 , $ 2 , र यति द्वारा संदर्भित हुन सक्छ। $ 0 सम्पूर्ण रेकर्ड हो। क्षेत्रहरु लाई निरन्तरता द्वारा संदर्भित गर्न आवश्यकता छैन:

n = 5
$ n प्रिन्ट गर्नुहोस्

इनपुट रेकर्डमा पाँचौं फिल्ड प्रिन्ट गर्दछ।

चर एनएफ इनपुट रेकर्डमा फिल्डको कुल संख्यामा सेट गरिएको छ।

गैर-अवस्थित फिल्डहरूमा सन्दर्भहरू (जस्तै $ NF पछि खेतहरू) null-string उत्पादन गर्दछ। यद्यपि, गैर-अवस्थित फिल्डमा नियुक्त गर्दै (जस्तै, $ (NF + 2) = 5 ) NF को मान बढाउँछ, कुनै हस्तक्षेप फिल्डले आफ्नो मानको रूपमा निलङ स्ट्रिङको साथ सिर्जना गर्दछ, र $ 0 को मूल्यलाई कम गर्न सकिन्छ खेतहरु OFS को मूल्य द्वारा अलग गरियो। नकारात्मक संख्यामा राखिएको क्षेत्रहरूमा सन्दर्भहरूले घातक त्रुटिको कारण बनाउँछ। एनएफ घटाउँदाले नयाँ मानहरू हराएको हुन सक्ने फिल्डको मानहरूको कारणले गर्दा, र $ 0 को मूल्य पुन: कम गर्न सकिन्छ, खेतहरू OFS को मूल्यद्वारा विभाजित हुन्छन्।

अवस्थित फिल्डमा मान असाइन गर्दा $ 0 सन्दर्भ भएको बेला सम्पूर्ण रेकर्ड पुनर्निर्माण हुन्छ। त्यसै गरी, $ 0 को मूल्य असाइन गर्दा रिजप्लप गर्न रेकर्डको कारणले, क्षेत्रहरूको लागि नयाँ मानहरू सिर्जना गर्दछ।

बिल्ट-इन चरहरू

Gawk को निर्मित इन चरहरू हुन्:

ARGC

कमान लाइन तर्कहरूको संख्या ( गुकमा विकल्पहरू समावेश गर्दैन, वा कार्यक्रम स्रोत)।

ARGIND

हालको फाइलको ARGV मा अनुक्रमणिका प्रसोधन गरिएको छ।

ARGV

कमान लाइन आर्गुमेन्टहरूको एरे। Array 0 देखि ARGC सम्म अनुक्रमित छ। 1. ARGV को सामग्री को गतिशील रूप देखि बदलन डेटा को लागी उपयोग को फाइलहरु लाई नियंत्रित गर्न सक्छ।

BINMODE

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

CONVFMT

संख्याहरूको लागि रूपान्तरण ढाँचा, "% .6g" , पूर्वनिर्धारित रूपमा।

ENVIRON

वर्तमान वातावरणको मानहरू समावेश गरिएको array। Array को पर्यावरण चर द्वारा अनुक्रमित गरिएको छ, प्रत्येक तत्व चर को मान (जस्तै, ENVIRON ["HOME"] हुन सक्छ / home / arnold हुन सक्छ)। यो array परिवर्तन गर्दा कार्यक्रमबाट देखाइएको वातावरणलाई प्रभाव पार्दैन जुन ग्यालेक्सी रेडिरेसन वा प्रणाली () प्रकार्यको माध्यमबाट गोकमा स्प्यान हुन्छ।

ERRNO

यदि प्रणाली त्रुटिले गर्दा, तानलाइनको लागि पढ्न वा एक करीबी () को समयमा, getline को लागि पुनःनिर्देशन गरिरहेको हुन्छ, त्यसपछि ERRNO ले string वर्णन गर्दा त्रुटि समावेश गर्दछ। मान गैर-अंग्रेजी स्थानीयहरूमा अनुवादको विषय हो।

FIELDWIDTHS

स्प्रेडविथ्सको सेतो स्पेस अलग सूची। जब सेट गरिन्छ, Fawk चर को फिल्ड विभाजक को मान को प्रयोग को बजाए, गawk ले इनपुट को चौडाई को फील्ड मा पार्स गर्दछ।

FILENAME

हालको इन्पुट फाइलको नाम। यदि कुनै फाइलहरू आदेश लाइनमा निर्दिष्ट गरिएको छैन भने, FILENAME को मान `` - '' हो। यद्यपि, FILENAME BEGIN ब्लक भित्र अपरिभाषित गरिएको छ (जब सम्म ल्यान्डलाइन द्वारा सेट गरिएको छैन )।

FNR

हालको आगत फाइलमा इनपुट रेकर्ड संख्या।

FS

आगत फिल्ड विभाजक, पूर्वनिर्धारित रूपमा एक ठाउँ। माथिको फिल्डहरू हेर्नुहोस्।

IGNORECASE

सबै नियमित अभिव्यक्ति र स्ट्रिङ अपरेसनको स्थिति-संवेदनशीलता नियन्त्रण गर्दछ। यदि IGNORECASE सँग एक गैर-शून्य मान छ भने, त्यसपछि स्ट्रिङ तुलना र ढाँचा मिलान नियमहरू, FS सँग फिल्ड विभाजन, RS सँग विभाजित रेकर्ड, ~! ~ , र gensub () , gsub () सँग मिल्ने नियमित अभिव्यक्ति, सूचकांक () , म्याच () , विभाजित () , र उप () निर्मित इन प्रकार्यहरूले नियमित रूपमा अभिव्यक्ति सञ्चालन गर्दा सबैलाई अनदेखा गर्नुहोस्। नोट: एरे सबस्क्रिप्टिङ प्रभावित छैन , न त asort () प्रकार्य हो।

यसैले, यदि इग्नोरसीसी शून्यको बराबर छैन, / aB / सबै तार "ab" , "aB" , "Ab" , र "AB" सँग मेल खान्छ। जस्तै सबै AWK चरको साथ, IGNORECASE को प्रारम्भिक मान शून्य हो, त्यसैले सबै नियमित अभिव्यक्ति र स्ट्रिङ अपरेसन सामान्यतया केस-संवेदनशील हुन्छ। यूनिक्स अन्तर्गत, पूर्ण आईएसओ 885 9 -1 लैटिन -1 क्यारेक्टर सेट गर्दा प्रयोग गर्दा बेवास्ता गरिन्छ।

LINT

AWK कार्यक्रम भित्र --lint विकल्प को गतिशील नियंत्रण प्रदान गर्दछ। जब साँचो हो, गोकले चकलेट चेतावनी दिन्छ। जब गलत छ, यसले गर्दैन। String value "fatal" लाई आवंटित गर्दा, लटका चेतावनी चेतावनी घातक त्रुटि बनिरहेको छ, जस्तै --lint = घातक । कुनै अन्य साँचो मूल्यले केवल चेतावनी चेतावनी दिन्छ।

NF

वर्तमान इनपुटको फिल्डहरूको संख्या रेकर्ड।

NR

अहिलेको रेकर्ड रेकर्डको कुल संख्या अब सम्म देखियो।

OFMT

संख्याको लागि आउटपुट ढाँचा, "% .6g" , पूर्वनिर्धारित रूपमा।

OFS

आउटपुट फिल्ड विभाजक, पूर्वनिर्धारित रूपमा एउटा स्पेस।

ORS

निर्गत रेकर्ड विभाजक, पूर्वनिर्धारित रूपमा एक नयाँ रेखा।

PROCINFO

यस array को तत्वहरू चलिरहेको AWK कार्यक्रमको बारेमा जानकारीको पहुँच प्रदान गर्दछ। केही प्रणालीहरूमा, त्यहाँ array "" group1 "को माध्यमबाट केहि n को लागि " समूह एन " हुन सक्छ, जुन प्रक्रियामा रहेको पूरक समूहहरूको संख्या हो। यी तत्वहरूको लागि परीक्षण गर्नको लागि अपरेटरमा प्रयोग गर्नुहोस्। निम्न तत्वहरू उपलब्ध हुन ग्यारेन्टी छन्:

PROCINFO ["egid"]

getegid (2) प्रणाली कल को मूल्य।

PROCINFO ["euid"]

geteuid (2) प्रणाली कल को मूल्य।

PROCINFO ["FS"]

"FS" यदि FS सँग फिल्ड विभाजित छ भने, "FIELDWIDTHS" यदि फील्ड विभाजित हुन्छ FIELDWIDTHS सँग प्रभाव हुन्छ।

PROCINFO ["ग्रिड"]

getgid (2) प्रणाली कल को मूल्य।

PROCINFO ["pgrpid"]

हालको प्रक्रियाको प्रक्रिया समूह आईडी।

PROCINFO ["pid"]

हालको प्रक्रियाको प्रक्रिया आईडी।

PROCINFO ["ppid"]

हालको प्रक्रियाको अभिभावक प्रक्रिया आईडी।

PROCINFO ["uid"]

getuid (2) प्रणाली कल को मूल्य।

RS

इनपुट रेकर्ड विभाजक, पूर्वनिर्धारित रूपमा एक नयाँ रेखा।

RT

रेकर्ड टर्मिनेटर। Gawk ले इनपुट पाठमा आरटी सेट गर्दछ जुन अक्षरसँग मेल खाने वा नियमित अभिव्यक्ति RS द्वारा निर्धारित गरिएको छ।

RSTART

म्याकद्वारा मिलाएको पहिलो वर्णको सूचकांक () ; 0 यदि मेल खाएन भने। (यसले तार्किक सूचकांकहरू एकै ठाउँमा सुरु गर्दछ भन्ने कुरा हो।)

RENGTH

म्याच द्वारा मेल खाने स्ट्रिंगको लम्बाइ () ; -1 यदि मिल्दो छैन।

SUBSEP

क्यारेक्टर तत्वहरूमा बहुविध सब्सक्रिप्टहरू अलग गर्न प्रयोग गरिएको वर्ण "\ 034"

TEXTDOMAIN

AWK कार्यक्रमको पाठ डोमेन; कार्यक्रमको तारको लागि स्थानीयकृत अनुवादहरू फेला पार्न प्रयोग गरियो।

Arrays

अन्धाहरू वर्ग कोष्ठकहरू ( [] ) को बीच अभिव्यक्ति संग सब्सक्रिप्ट गरिएको छ। यदि अभिव्यक्ति एक अभिव्यक्ति सूची हो ( Expr , Expr ...) त्यसपछि array subscript स्ट्रिङ भनेको प्रत्येक अभिव्यक्ति को (स्ट्रिंग) मूल्य को concatenation, SUBSEP चर को मान द्वारा अलग छ। यो सुविधा बहुगुप्त आयाम arrays अनुकरण गर्न प्रयोग गरिन्छ। उदाहरणका लागि:

i = "A"; j = "B"; k = "C"
x [i, j, k] = "hello, world \ n"

string "world, n \ n" string array x को तत्वमा निर्दिष्ट गर्दछ जुन string "A \ 034B \ 034C" द्वारा अनुक्रमित गरिएको छ। AWK मा सबै arrays संगीय हो, यानी स्ट्रिङ् मूल्यहरु द्वारा अनुक्रमित।

एक विशेष अपरेटर मा यदि हुन सक्छ वा हुन सक्छ कि यदि एक array मा सूचकांक एक विशेष मूल्य संग मिलन को लागि बयान।

यदि (array in val) मुद्रण array [val]

यदि array सँग धेरै सब्सक्रिप्शन छ भने, (i, j) array मा प्रयोग गर्नुहोस्

ईन्टरमा एक array को सबै तत्वहरूमा पुनरावृद्धि गर्न पाशको लागि पनि प्रयोग गर्न सकिन्छ।

एक तत्व हटाईएको स्टेटको प्रयोग गरेर array बाट हटाउन सकिन्छ। मेटाउने कथन पनि array को सम्पूर्ण सामग्री मेटाउनका लागि प्रयोग गर्न सकिन्छ, केवल सब्सक्रिप्ट बिना array नाम निर्दिष्ट गरेर।

चर टाइपिंग र रूपान्तरण

चर र क्षेत्रहरू (अस्थायी बिन्दु) नम्बरहरू, वा तारहरू, वा दुवै हुन सक्छन्। चरको व्याख्याको मूल्य कसरी यसको सन्दर्भमा निर्भर हुन्छ। यदि सांख्यिक अभिव्यक्तिमा प्रयोग गरियो भने, यो string को रूपमा प्रयोग गर्नाले नम्बरको रूपमा व्यवहार गरिनेछ, यो string को रूपमा व्यवहार गरिनेछ।

एक संख्याको रूपमा व्यवहार गर्नको लागि चर बलियो गर्न, 0 यसमा यो थप्नुहोस्; यसलाई string को रूपमा व्यवहार गर्न बलियो गर्न, यो नील स्ट्रिङको साथमा कोटिबद्ध गर्नुहोस्।

जब एक string संख्यामा रूपान्तरित हुनुपर्छ, रूपान्तरण strtod (3) को प्रयोग गरेर पूरा भएको छ। संख्यालाई string मा कन्फएफएमटीको मान प्रयोग गरेर स्प्रिन्ट (3) को लागि ढाँचा स्ट्रिङको रुपमा प्रयोग गरी तर्कको रूपमा मानको संख्यात्मक मानको साथ। यद्यपि, AWK मा सबै संख्याहरू अस्थायी-बिन्दु हो भने, अभिन्न मानहरू सधैँ पूर्णाङ्कको रूपमा रूपान्तरित हुन्छन्। यसरी, दिइएको

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

चर b सँग "12" को string value र "12.00" छैन।

गकले निम्न प्रकारको तुलना गर्दछ: यदि दुई चरहरू संख्यात्मक छन् भने, तिनीहरू संख्यात्मक रूपमा तुलना गरिन्छन्। यदि एक मान संख्यात्मक छ र अर्कोसँग string string मान छ `` संख्यात्मक स्ट्रिङ हो, '' त्यसपछि तुलनात्मक संख्याहरू पनि गरिन्छ। अन्यथा, संख्यात्मक मान स्ट्रिङमा रूपान्तरित छ र string comparison प्रदर्शन गरिएको छ। दुई तारहरू तुलनात्मक छन्, निस्सन्देह, तारहरूको रूपमा। ध्यान दिनुहोस् कि POSIX मानक `` संख्यात्मक स्ट्रिङ 'को अवधारणा लागू गर्दछ, जहाँ पनि स्थिरी स्ट्रिंग को लागि। यद्यपि, यो स्पष्ट रूपमा गलत छ, र गोकले यो गर्दैन। (सौभाग्य देखि, यो मानकको अर्को संस्करणमा निश्चित छ।)

नोट गर्नुहोस् कि स्ट्रिङ बाधाहरू, जस्तै "57" , संख्यात्मक तारहरू होइनन् , तिनीहरू स्ट्रिङ बाधाहरू हुन्। `` संख्यात्मक स्ट्रिङको विचार मात्र 'फिल्ड, getline इनपुट, FILENAME , ARGV तत्वहरू, ENVIRON तत्वहरू र विभाजन () द्वारा उत्पन्न गरिएको तत्वहरू मात्र लागू हुन्छन् जुन संख्यात्मक तारहरू हुन्। आधारभूत विचार भनेको प्रयोगकर्ता इनपुट , र केवल प्रयोगकर्ता इनपुट, संख्यात्मक देखिन्छ, यस तरिकाको व्यवहार गर्नुपर्छ।

अपनिमेटेड चरहरू संख्यात्मक मान 0 र string string "" (null, वा खाली, स्ट्रिङ) छ।

अक्टोबर र हेक्साडेसिमल Constants

गकको संस्करण 3.1 को साथ सुरु हुँदै , तपाईं आफ्नो AWK कार्यक्रम स्रोत कोडमा C-style ओकटल र हेक्साडेसिमल स्ट्रन्ट प्रयोग गर्न सक्नुहुनेछ। उदाहरणका लागि, अक्टोटल मान 011 दशमलव 9 को बराबर छ, र हेक्सडेसिमल मान 0x11 दशमलव 17 को बराबर छ।

स्ट्रिंग Constants

AWK मा स्ट्रिंग बाधाहरू डबल उद्धरणहरू ( " ) को बीच संलग्न क्यारेक्टरहरूको क्रमहरू हुन्। String भित्रै, केहि भागने क्रमहरू मान्यता प्राप्त गरिन्छ, जस्तै।

\\

एक शाब्दिक ब्याकस्ल्याश।

\ a

`` चेतावनी '' वर्ण; प्राय: ASCII बीईल वर्ण।

\ b

ब्याकस्पेस।

\ f

फारम-फिड।

\ n

नयाँ रेखा।

\ r

गाडी फिर्ता

\ t

तेर्सो ट्याब।

\ v

ठाडो ट्याब।

\ x हेक्स अंकहरू

\ X पछि हेक्साडेसिमल अंकहरूको string द्वारा वर्णित क्यारेक्टर। ANSIC को रूपमा, सबै निम्न हेक्साडेसिमल अंकहरू भाग्य अनुक्रमको भागलाई मानिन्छ। (यो फीचर हामीलाई समितिको भाषा भाषाको बारेमा केही कुरा बताउनुपर्दछ।) Eg , "\ x1B" ASCIIESC (भाग्ने) क्यारेक्टर हो।

\ ddd

अक्षर -1, 2-, वा ओक्टल अंकको 3-अंकको अनुक्रम द्वारा प्रतिनिधित्व गरिएको वर्ण। उदाहरणका लागि, "\ 033" ASCII ESC (भाग्य) चरित्र हो।

\ c

शाब्दिक वर्ण सी

भाग्य अनुक्रमहरू लगातार नियमित अभिव्यक्ति भित्र प्रयोग गर्न सकिन्छ (जस्तै, / [\ t \ f \ n \ r \ v] / सेतो स्पेस पात्रहरूसँग मेल खान्छ)।

संगतता मोडमा, अक्षल र हेक्साडेसिमल सेकेन्ड एपिसोडहरू द्वारा प्रतिनिधित्व गरिएका अक्षरहरू शाब्दिक रूपमा व्यवहार गरिन्छ जब नियमित अभिव्यक्ति संयन्त्रहरूमा प्रयोग गरिन्छ। यस प्रकार, / a \ 52b / एक \ / b / बराबर बराबर छ।

ढाँचा र कार्यहरू

AWK एक लाइन-आधारित भाषा हो। ढाँचा पहिला आउछ, र त्यस पछि। कार्य विवरणहरू {} मा संलग्न छन्। या त ढाँचा हराउन सक्छ, वा कार्य हराइरहेको हुन सक्छ, तर निस्सन्देह, दुवै होइन। यदि ढाँचा हराइरहेको छ भने, कार्यको प्रत्येक एकल रेकर्डको लागि कार्य निष्पादित गरिएको छ। एउटा छुटेको कार्य बराबर छ

{print}

जसले सम्पूर्ण रेकर्ड छाप्छ।

टिप्पणीहरू `` # '' वर्णसँग सुरु हुन्छ, र रेखाको अन्त्यसम्म जारी राख्नुहोस्। बयानहरू अलग गर्न खाली रेखाहरू प्रयोग गर्न सकिन्छ। साधारणतया, एक बयान एक नयाँलाइन संग समाप्त हुन्छ, तथापि, यो ``, '', { , ? , : , && , या || । मा समाप्त हुने लाइनहरू वा अन्यथा पनि तिनीहरूको विवरणहरू निम्न रेखामा जारी राख्छन्। अन्य अवस्थामा, एक रेखा एक साथ समाप्त गरेर जारी गर्न सकिन्छ, जसमा नयाँ लाइन उपेक्षा गरिनेछ।

धेरै बयानहरू एक रेखामा ``; '' सँग अलग गरेर राख्न सकिन्छ। यो प्याटर्न-एक्शन जोडा (सामान्यतया अवस्थामा), र ढाँचा-कार्य विवरणहरू आफैका कार्य भाग भित्र दुवै बयानहरूमा लागू हुन्छ।

ढाँचा

AWK ढाँचा निम्न मध्ये एक हुन सक्छ:

BEGIN END / नियमित अभिव्यक्ति / सम्बन्धी अभिव्यक्ति ढाँचा ढाँचा ढाँचा || ढाँचा ढाँचा ? ढाँचा : ढाँचा ( ढाँचा ) ! ढाँचा ढाँचा 1 , ढाँचा 2

BEGINEND दुई विशेष प्रकारका ढाँचाहरू छन् जुन इनपुटको विरुद्ध परीक्षण गरिएको छैन। सबै BEGIN ढाँचाका कार्य भागहरू मर्ज गरिएका छन् भने सबै बयान एकल BEGIN ब्लकमा लेखिएको थियो। ती कुनै पनि इनपुट पढ्नु अघि क्रियान्वित गरिएको छ। त्यसै गरी, सबै END ब्लकहरू मर्ज गरिएका हुन्छन्, र जब सबै इनपुट समाप्त हुन्छ (वा जब बाहिरिने कार्यान्वयन गरिन्छ) लाई क्रियान्वित गर्दछ। BEGINEND ढाँचाहरू ढाँचा अभिव्यक्तिहरूमा अन्य ढाँचाहरूसँग जोड्न सकिँदैन। BEGINEND ढाँचाहरू हराएको कार्य भागहरू हुन सक्दैनन्।

/ नियमित अभिव्यक्ति / ढाँचाका लागि, सम्बद्ध बयान हरेक इनपुट रेकर्डको लागि नियमित अभिव्यक्ति सँग मेल खान्छ। नियमित अभिव्यक्ति जस्तै egrep (1) मा भएका हुन्, र तल संक्षेपमा छन्।

एक सम्बन्धी अभिव्यक्तिले कार्यहरूमा खण्डमा तल परिभाषित कुनै पनि अपरेटरहरू प्रयोग गर्न सक्छ। यी सामान्यतया परीक्षण कि निश्चित फील्डहरू निश्चित नियमित अभिव्यक्तिसँग मेल खान्छ कि छैन।

&& , || , र ! संचालकहरु तार्किक र, तार्किक OR, र तार्किक छैन, क्रमशः, सी मा। सी तिनीहरूले छोटो सर्किट मूल्यांकन, सी मा पनि, र अधिक आदिम पैटर्न अभिव्यक्ति संयोजन को लागि प्रयोग गरिन्छ। धेरै भाषाहरूको रूपमा, मूल्याङ्कनको क्रम बदल्न को लागी पेन्डिङहरू प्रयोग गर्न सकिन्छ।

??: अपरेटर एक नै अपरेटर जस्तै सी मा छ यदि पहिलो ढाँचा सही छ भने परीक्षणको लागि प्रयोग गरिएको ढाँचा दोस्रो ढाँचा हो, अन्यथा यो तेस्रो हो। केवल दोस्रो र तेस्रो ढाँचाको मात्र मूल्याङ्कन गरिएको छ।

ढाँचा 1 , अभिव्यक्तिको ढाँचा 2 ढाँचा दायरा ढाँचा भनिन्छ । यो रेकर्डसँग सुरु हुने सबै आगत रेकर्डसँग मेल खान्छ जुन ढाँचा 1 सँग मेल खान्छ , र प्रतिमा 2 सम्म समावेश गर्ने रेकर्ड सम्म जारी राख्नुहोस् । यो कुनै अन्य प्रकारको ढाँचा अभिव्यक्तिसँग संयोजन छैन।

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

उदाहरणप्रदमा नियमित अभिव्यक्ति विस्तारित दयालु पाइन्छ। तिनीहरू क्यारेक्टरमा निम्न प्रकारका हुन्छन्:

c

गैर-मेटार्किटर c सँग मेल खान्छ।

\ c

शाब्दिक वर्ण सीसँग मेल खान्छ।

नयाँलाइन सहित कुनै क्यारेक्टर मेल खान्छ।

^

स्ट्रिंगको सुरुवातसँग मेल खान्छ।

$

स्ट्रिङको अन्त्यसँग मेल खान्छ।

[ abc ... ]

क्यारेक्टर सूची, कुनै क्यारेक्टरहरू एन्क्रिप्टसँग मेल खान्छ ...।

[^ abc ... ]

नकारात्मक वर्ण सूची, abc बाहेक कुनै क्यारेक्टरसँग मेल खान्छ ...।

r1 | r2

वैकल्पिक: R1 वा r2 सँग मेल खान्छ।

r1r2

कन्टेनरेशन: मेल खान्छ r1 , र त्यसपछि r2

r +

एक वा बढी आर मेल खान्छ।

r *

शून्य वा थप R सँग मेल खान्छ।

r ?

शून्य वा एक आर मेल खान्छ।

( r )

समूहबद्धता: म्याचहरू।

r { n }

r { n ,}

r { n , m } ब्रेसेन्स भित्र एक वा दुईवटा संख्या एक अन्तराल अभिव्यक्तिलाई अस्वीकार गर्दछ । यदि त्यहाँ एक ब्रेसिजमा छ भने, अघिल्लो नियमित अभिव्यक्ति आर n पटक दोहोर्याइएको छ। यदि दुई अङ्कहरू अल्पविरामद्वारा विभाजित छन् भने, r दोहोरो एम पटक दोहोर्याइएको छ। यदि एक अङ्क पछि एक अल्पविराम हो भने, त्यसपछि r लाई कम्तिमा एन पटक दोहोर्याइएको छ।

अन्तराल अभिव्यक्तिहरू मात्र उपलब्ध छन् भने - ओपेक्सस - एर-अंतराल आदेश लाइनमा निर्दिष्ट गरिएको छ।

\ y

खाली स्ट्रिङसँग मेल खान्छ वा शब्दको अन्त्यमा वा अन्त्यमा।

\ बी

शब्द भित्र खाली स्ट्रिङसँग मेल खान्छ।

\ <

शब्दको सुरुमा खाली स्ट्रिंगसँग मेल खान्छ।

\>

शब्दको अन्त्यमा खाली स्ट्रिङसँग मेल खान्छ।

\ w

कुनै पनि शब्दसँग मेल खाँदैन-अवधारणा वर्ण (अक्षर, अङ्क, वा अन्डरकोर)।

\ डब्लु

कुनै पनि वर्ण मेल खाँदैन जो शब्द-अवयव छैन।

\ `

बफर (string) को सुरुमा खाली स्ट्रिङसँग मेल खान्छ।

\ '

बफरको अन्त्यमा खाली स्ट्रिङसँग मेल खान्छ।

सेन्सर दृश्यहरू जुन स्ट्रिङ अवरोधहरूमा वैध छन् (तल हेर्नुहोस्) नियमित अभिव्यक्तिमा पनि वैध छन्।

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

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

[: alnum:]

अल्फान्युमेरिक क्यारेक्टरहरू।

[: अल्फा:]

वर्णमाला वर्णहरू।

[: खाली:]

स्पेस वा ट्याब वर्णहरू।

[: cntrl:]

वर्णहरू नियन्त्रण गर्नुहोस्।

[:अंक:]

संख्यात्मक क्यारेक्टरहरू।

[: ग्राफ:]

क्यारेक्टरहरू र दृश्यात्मक दुवै वर्णहरू। (एक ठाउँ प्रिन्ट छ, तर देख्न सकिँदैन, जबकि दुवै हो।)

[: निम्न:]

लोअर-केस वर्णमाला वर्णहरू।

[: प्रिंट:]

प्रिन्टयोग्य क्यारेक्टरहरू (वर्णहरू क्यारेक्टर नियन्त्रण गर्दैनन्)।

[: पङ्क्ति:]

विराम चिह्नहरू (क्यारेक्टरहरू अक्षरहरू छैनन्, अङ्कहरू, नियन्त्रण वर्णहरू, वा स्पेस क्यारेक्टरहरू)।

[: स्पेस:]

स्पेस क्यारेक्टरहरू (जस्तै स्पेस, ट्याब र फर्मफिड, केहि नामका लागि)।

[: माथिल्लो:]

माथिल्लो अक्षर वर्णमाला वर्णहरू।

[: xdigit:]

हेक्साडेसिमल अंकहरू क्यारेक्टरहरू।

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

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

प्रतीक चिन्हहरू

एक कोटिङ् प्रतीक बहु-क्यारेक्टर कोटिङ् तत्वमा संलग्न छ [।।] । उदाहरणको लागि, यदि ch कोटिने तत्व हो, त्यसपछि [[.ch]] एक नियमित अभिव्यक्ति हो जसले यस कोटिङ् तत्वसँग मेल खान्छ, जबकि [ch] एक नियमित अभिव्यक्ति हो जुन सी वा मेल खान्छ।

समानता वर्गहरू

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

यी सुविधाहरू गैर-अंग्रेजी बोल्ने स्थानीयहरूमा बहुमूल्य छन्। लाइब्रेरी प्रकार्यहरूले हालको POSIX क्यारेक्टर वर्गहरू पहिचान गर्न मिल्दो नियमित अभिव्यक्तिका लागि प्रयोग गर्दछ; उनीहरूले कोटिंग प्रतीक वा सम्वन्ध वर्गहरू पहिचान गर्दैनन्।

\ Y , \ B , \ < , \> , \ w , \ w , \ ` , र \ ' अपरेटरहरू गोकको लागि विशिष्ट छन्; तिनीहरू GNU नियमित अभिव्यक्ति पुस्तकालयहरूमा सुविधाहरूमा आधारित विस्तारहरू छन्।

विभिन्न कमान लाइन विकल्पहरूले कसरी नियमित अभिव्यक्तिहरूमा अक्षरहरू व्याख्या गर्दछ नियन्त्रण गर्दछ।

विकल्पहरू छैनन्

पूर्वनिर्धारित अवस्थामा, गोकले POSIX नियमित अभिव्यक्तिको सबै सुविधाहरू प्रदान गर्दछ र माथि उल्लिखित TheGNU नियमित अभिव्यक्ति परिचालकहरू प्रदान गर्दछ। यद्यपि, अन्तराल अभिव्यक्तिहरू समर्थित छैनन्।

--पोक्स

केवल POSIX नियमित अभिव्यक्तिहरू समर्थित छन्, GNU अपरेटरहरू विशेष होइनन्। (एजी, \ w म्याच एक शाब्दिक डब्ल्यू )। अंतराल अभिलेख अनुमति छ।

--अन्तकालिक

पारंपरिक युनिक्स अजीब नियमित अभिव्यक्ति मिल्दो छ। GNU अपरेटरहरू विशेष छैनन्, अन्तराल अभिव्यक्तिहरू उपलब्ध छैनन्, र न पनि POSIX क्यारेक्टर क्लासहरू ( [[: alnum:]] र त्यसमा)। अक्टोल र हेक्साडेसिमल सेप्टेम्बर अनुक्रमहरू द्वारा वर्णित अक्षर शाब्दिक रूपमा व्यवहार गरिन्छ, भले ही उनि नियमित अभिव्यक्ति मेटाचुमेन्ट को प्रतिनिधित्व गर्दछन।

--अन्त-अंतराल

नियमित अभिव्यक्तिमा अन्तराल अभिव्यक्तिलाई अनुमति दिनुहोस्, भलेसम्म --traditional प्रदान गरिएको छ।

कार्यहरू

कार्य विवरणहरू ब्रेकसहरूमा संलग्न छन्, {} । कार्य विवरणहरू प्राय: सामान्य असाइनमेंट, सशर्त, र लुपिंग बयान भन्दा धेरै भाषाहरूमा पाइन्छ। संचालकहरू, नियन्त्रण स्टेटहरू, र इनपुट / निर्गत विवरणहरू उपलब्ध छन्।

अपरेटरहरू

AWK मा अपरेटरहरू कम प्राथमिकताको क्रममा, हुन्

( ... )

ग्रुप गर्दै

$

फिल्ड सन्दर्भ।

++ -

वृद्धि र कमी दुवै उपसर्ग र पोष्टफिक्स।

^

एक्सप्लिकेशन्स ( ** प्रयोग गर्न सकिन्छ, र ** = असाइनमेंट अपरेटरको लागि)।

+ -!

युनिटरी प्लस, यूनियन माइनस, र तार्किक नकारात्मक।

* /%

गुणन, विभाजन, र मोड्युल।

+ -

थप र घटाउ।

ठाउँ

स्ट्रिंग कन्टेनरेशन।

<>

<=> =

! = == नियमित सम्बन्धी परिचालकहरू।

~! ~

नियमित अभिव्यक्ति म्याच, मेल नखोल्नुहोस्। नोट: बायाँ-दाँया तिर ~ वा ~ ~ ~ स्थिर नियमित अभिव्यक्ति ( / foo / ) प्रयोग नगर्नुहोस्। दाहिने हातमा एक मात्र प्रयोग गर्नुहोस्। अभिव्यक्ति / फू / ~ एक्सकोसँगको अर्थ हो (($ 0 ~ / foo /) ~ exp ) । यो सामान्यतया के हो उद्देश्य थियो।

मा

Array सदस्यता।

&&

तार्किक र।

||

तार्किक OR।

?:

सी सशर्त अभिव्यक्ति। यो फारम expr1 छ ? expr2 : expr3 । यदि expr1 सही छ भने अभिव्यक्तिको मूल्य expr2 हो , अन्यथा यो expr3 हो । केवल expr2expr3 मध्ये एक को मूल्याङ्कन गरिएको छ।

= + = = =

* = / =% = ^ असाइनमेंट। दुवै निरपेक्ष असाइनमेंट ( var = मान ) र अपरेटर-असाइनमेंट (अन्य ढाँचाहरू) समर्थित छन्।

नियन्त्रण विवरणहरू

नियन्त्रण विवरणहरू निम्नानुसार छन्:

यदि ( condition ) बयान [ अन्य विवरण ] जबकि ( शर्त ) को लागि ( शर्त ) ( उदाहरण को लागि) expr1 ; expr2 ; expr3 बयान को लागि ( सरणी मा var ) बयान ब्रेक जारी छ array [ index ] array exit हटा [ अभिव्यक्ति ] { विवरण }

I / O स्टेटसहरू

इनपुट / आउटपुट बयानहरू निम्नानुसार छन्:

बन्द ( फाईल [ , कसरि ] )

फाइल, पाइप वा सह प्रक्रिया बन्द गर्नुहोस्। वैकल्पिक प्रक्रियालाई कसरी दुई-मार्ग पाइपको एक अन्त्य बन्द गर्दा मात्र प्रयोग गर्नुपर्छ। यो " string " वा "देखि" वा "बाट" string हुनु पर्छ।

getline

अर्को इनपुट रेकर्डबाट $ 0 सेट गर्नुहोस्; सेट NF , NR , FNR

getline < फाइल

फाइलको अर्को रेकर्डबाट $ 0 सेट गर्नुहोस् ; NF सेट गर्नुहोस्।

getline var

अर्को आगत रेकर्डबाट var सेट गर्नुहोस्; सेट NR , FNR

getline var < फाइल

फाइलको अर्को रेकर्डबाट var सेट गर्नुहोस्

कमांड | getline [ var ]

चलाईएको आदेश $ 2 वा var मा आउटपुट पाइप गर्दै, माथिको रूपमा।

कमांड | & getline [ var ]

सह प्रक्रियाले सह-प्रक्रियाको रूपमा आउटपुटलाई $ 0 वा var , माथिको रूपमा पाइप गर्दै। सह-प्रोसेसहरू गक एक्सटेन्सन हुन्।

अर्को

हालको इनपुट रेकर्ड प्रशोधन रोक्नुहोस्। अर्को आगत रेकर्ड पढ्न र प्रशोधन गर्दै AWK कार्यक्रममा पहिलो ढाँचाको साथ सुरु हुन्छ। यदि इनपुट डाटाको अन्त्यमा पुग्छ भने, END ब्लक (हरू), यदि कुनै पनि, कार्यान्वयन गरिएको छ।

अर्कोफाइल

हालको आगत फाइल प्रशोधन गर्न रोक्नुहोस्। अर्को इनपुट रेकर्ड पढ्ने अर्को आगत फाइलबाट आउँछ। FILENAMEARGIND अद्यावधिक गरिएको छ, FNR 1 मा रिसेट हुन्छ, र AWK कार्यक्रममा पहिलो ढाँचाको साथ सुरु हुँदैछ। यदि इनपुट डाटाको अन्त्यमा पुग्छ भने, END ब्लक (हरू), यदि कुनै पनि, कार्यान्वयन गरिएको छ।

छाप्नुहोस्

हालको रेकर्ड छाप्छ। निर्गत रेकर्ड ORS चरको मानको साथ समाप्त भएको छ।

पूर्वनिर्धारित सूची प्रिन्ट गर्नुहोस्

अभिव्यक्ति छाप्छ। प्रत्येक अभिव्यक्ति OFS चर को मान द्वारा विभाजित छ। निर्गत रेकर्ड ORS चरको मानको साथ समाप्त भएको छ।

पूर्वनिर्धारित सूची > फाइल प्रिन्ट गर्नुहोस्

फाइलमा अभिव्यक्ति छाप्छ। प्रत्येक अभिव्यक्ति OFS चर को मान द्वारा विभाजित छ। निर्गत रेकर्ड ORS चरको मानको साथ समाप्त भएको छ।

printf fmt, expr-list

ढाँचा र प्रिन्ट गर्नुहोस्।

printf fmt, expr-list > फाइल

फाइलमा ढाँचा र प्रिन्ट गर्नुहोस्

प्रणाली ( cmd-line )

आदेश cmd-line कार्यान्वयन गर्नुहोस्, र बाहिर निस्कनुहोस्। (यो गैर-POSIX प्रणालीहरूमा उपलब्ध नहुन सक्छ।)

fflush ( [ फाइल ] )

खुला आउटपुट फाइल वा पाइप फाइलसँग सम्बन्धित कुनै पनि बफरहरू फ्लश गर्नुहोस् । यदि फाइल हराइरहेको छ भने, मानक आउटपुट फ्लाइन्ड गरिएको छ। यदि फाईल निलङ स्ट्रिङ् हो भने, त्यसपछि सबै खुला आउटपुट फाइलहरू र पाइपहरू तिनीहरूका बफरहरू फ्लोरिन्छन्।

प्रिन्टप्रिन्टफको लागि थप आउटपुट पुनःनिर्देशन अनुमति दिइएको छ।

छाप्नुहोस् ... >> फाइल

फाइलमा उत्पादन बढाउँछ।

छाप्नुहोस् ... | आदेश

पाइपमा लेख्छ।

प्रिन्ट ... | र कमान्ड

सह-प्रक्रियालाई डेटा पठाउँदछ।

Getline कमांड फाइलको अन्त्यमा 0 र त्रुटिमा 0 फर्काउँछ। एउटा त्रुटिमा, ERRNO ले string वर्णन गर्नाले समस्या वर्णन गर्दछ।

नोट: ल्यान्डलाइनमा पाइप वा सह-प्रक्रिया प्रयोग गर्न वा पाश भित्र प्रिन्ट वा प्रिन्टबाट प्रयोग गर्नुपर्दछ , तपाईले आदेशको नयाँ उदाहरणहरू सिर्जना गर्न बन्द () प्रयोग गर्नुपर्दछ । AWK ले स्वचालित रूपमा पाइप वा सह-प्रक्रियाहरू बन्द गर्दैन जब तिनीहरू EOF फर्काउँछन्।

प्रिन्ट बयान

प्रिफिफिकेशनsprintf () प्रकार्यको AWK संस्करणहरू तल देखाउनुहोस् निम्न रूपांतरण विवरण ढाँचाहरू स्वीकार गर्नुहोस्:

% c

एक ASCII वर्ण। यदि % c को लागि प्रयोग गरिएको तर्क संख्यात्मक हो, यो वर्णको रूपमा व्यवहार गरिन्छ र छापिएको छ। अन्यथा, तर्क string को लागी माना जाता छ, र कि string को मात्र पहिलो वर्ण छापिएको छ।

% d , % i

एक दशमलव संख्या (पूर्णांक भाग)।

% ई,% ई

फ्लोटिंग पोइन्ट नम्बर फारम [-] d.dddddde [+ -] dd% E ढाँचा ई को सट्टा प्रयोग गर्दछ।

% f

फारमको एक अस्थायी बिन्दु संख्या [-] ddd.dddddd

%जि जि

% E वा % f रूपान्तरण, जुनसुकै छोटो छ, प्रयोग नसोर्सिबल शून्य संग। % G ढाँचा % ई को सट्टा % ई प्रयोग गर्दछ।

% o

अज्ञात अल्ट्रा नम्बर (एक पूर्णांक पनि)।

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

% s

क्यारेक्टर स्ट्रिङ।

% x,% X

एक अज्ञात हेक्साडेसिमल नम्बर (एक पूर्णांक)। % X ढाँचा abcdef को सट्टा ABCDEF प्रयोग गर्दछ।

%%

एक एकल % वर्ण; कुनै बहस परिवर्तन गरिएको छैन।

वैकल्पिक, अतिरिक्त प्यारामिटरहरू % र नियन्त्रण अक्षर बीच झूटो हुन सक्छ:

गणना गर्नुहोस् $

ढाँचामा यो बिन्दुको गणना 'th तर्कहरू प्रयोग गर्नुहोस्। यसलाई एक वास्तविक निर्दिष्टकर्ता भनिन्छ र मुख्य रूपमा उद्देश्य ढाँचा तारको अनुवादित संस्करणहरूमा प्रयोग गरिएको छ, कुनै AWK प्रोग्रामको मूल पाठमा छैन। यो गक एक्सटेन्सन हो।

-

अभिव्यक्ति बायाँ हुनु पर्छ आफ्नो क्षेत्रमा।

ठाउँ

संख्यात्मक रूपान्तरणका लागि, स्पेसको साथ उपसर्ग सकारात्मक मानहरू, र माइनस हस्ताक्षरको साथ नकारात्मक मान।

+

चौडाइ परिमार्जक, चौडाइ परिमार्जक (तल हेर्नुहोस्) भन्दा पहिले प्रयोग गरिएको हो, सांख्यिक रूपांतरणहरूको लागि सँधै एउटा साइन आपूर्ति गर्न भन्छ, भले पनि डाटा ढाँचामा सकारात्मक छ। + स्पेस परिमार्जक ओभरराइड गर्दछ।

#

निश्चित नियन्त्रण अक्षरहरूका लागि `` वैकल्पिक फारम '' प्रयोग गर्नुहोस्। % O को लागि , एक शून्य शून्य आपूर्ति गर्नुहोस्। % X% X का लागि , न्युजेरो परिणामको लागि एक प्रमुख 0x वा 0 एक्स आपूर्ति गर्नुहोस्। % E , % E , र % f का लागि , परिणाममा एक दशमलव दशमलव बिन्दु समावेश गर्दछ। % G , र % G को लागि , जेरोस पछाडि पछाडि परिणाम हटाइएको छैन।

0

एक प्रमुख 0 (शून्य) फ्ल्यागको रूपमा कार्य गर्दछ, यसले संकेत गर्दछ कि आउटपुट रिक्त स्थानहरूको सट्टा zeroes सँग प्याड गरिएको हुनुपर्छ। यो गैर-संख्यात्मक आउटपुट ढाँचामा पनि लागू हुन्छ। यो फ्ल्याग मात्र प्रभाव छ जब फील्ड चौडाइ मुद्रित मूल्य भन्दा व्यापक छ।

चौडाई

क्षेत्र यो चौडाइमा प्याड गरिएको हुनुपर्छ। फिल्ड सामान्यतया रिक्त स्थानहरूमा प्याड गरिएको छ। यदि 0 फ्ल्याग प्रयोग गरिएको छ भने, यो ज्वरोसँग प्याड गरिएको छ।

prec

संख्यामा मुद्रण गर्दा प्रयोग गर्न परिमार्जन निर्दिष्ट गर्दछ। % E , % E , र % f ढाँचाका लागि, यसले अंकको संख्या निर्दिष्ट गर्दछ जुन तपाईं दशमलव बिन्दुको दायाँतिर प्रिन्ट गरिएको चाहनुहुन्छ। % G , र % g ढाँचाका लागि, यसले महत्त्वपूर्ण अंकहरूको अधिकतम संख्या निर्दिष्ट गर्दछ। % D , % o , % i , % u , % x , and % x ढाँचाका लागि, यसले मुद्रण गर्न अंकहरूको न्यूनतम संख्या निर्दिष्ट गर्दछ। % S को लागि , यसले मुद्रण गरिनु पर्ने string बाट अधिकतम वर्ण निर्दिष्ट गर्दछ।

ANSI सी मुद्रण () routines को गतिशील चौडाइतत्काल क्षमताहरू समर्थित छन्। A * चौडाई वा पूर्वनिर्धारित निर्दिष्टताहरूको स्थानमा तिनीहरूको मानहरू प्रिन्टफ वा sprintf () लाई तर्क सूचीबाट लिइन्छ। गतिशील चौडाइ वा परिशुद्धताको साथ एक वास्तविक निर्दिष्टकर्ता प्रयोग गर्न, * string string मा string पछि $ गणना गर्नुहोस्। उदाहरणको लागि, "% 3 $ * 2 $। * 1 $ s"

विशेष फाइल नामहरू

फाइलमा प्रिन्ट वा प्रिन्टबाट कुनै पनि हे / हे पुनःनिर्देशन गर्दा, वा फाइलबाट getline मार्फत, गोकले निश्चित विशेष फाइल नामहरू आन्तरिक रूपमा पहिचान गर्दछ। यी फाइलनामहरूले गोकको आमाबाबुको प्रक्रिया (सामान्यतया शेल) बाट पाएको फाइल वर्णनकर्ताहरूलाई पहुँच अनुमति दिन्छ। यी फाईल नामहरू पनि डाटा फाईलहरू नाम गर्न आदेश रेखामा प्रयोग गर्न सकिन्छ। फाइलनामहरू हुन्:

/ dev / stdin

मानक आगत।

/ dev / stdout

मानक आउटपुट।

/ dev / stderr

मानक त्रुटि आउटपुट।

/ dev / fd / n

खुला फाइलसँग वर्णन गरिएको फाइल वर्णनकर्ता n

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

छाप्नुहोस् "तपाईंले बोल्नुभयो!" > "/ dev / stderr"

जहाँ तपाईं अन्यथा प्रयोग गर्नु पर्छ

छाप्नुहोस् "तपाईंले बोल्नुभयो!" | "बिल्ली 1> र 2"

निम्न विशेष फाइलनामहरू TCP / IP सञ्जाल जडानहरू सिर्जना गर्नका लागि | र सह-प्रक्रिया अपरेटरको साथ प्रयोग गर्न सकिन्छ।

/ inet / tcp / lport / rhost / rport

टाढाको पोर्ट रिपोर्टमा टाढाको होस्टल रोटमा स्थानीय पोर्ट लर्डमा TCP / IP जडानको लागि फाइल। प्रणाली को पोर्ट को लागी 0 को पोर्ट को प्रयोग गर्नुहोस्।

/ inet / udp / lport / rhost / rport

समान, तर TCP / IP को सट्टा यूडीपी / आईपी प्रयोग गर्नुहोस्।

/ inet / raw / lport / rhost / rport

भविष्यको प्रयोगको लागि आरक्षित।

अन्य विशेष फाइलनामहरूले दौड गक प्रक्रियाको बारेमा जानकारीको पहुँच प्रदान गर्दछ। यी फाइलनामहरू अब अप्रचलित छन्। तिनीहरू प्रदान गर्ने जानकारी प्राप्त गर्नको लागि PROCINFO array प्रयोग गर्नुहोस्। फाइलनामहरू हुन्:

/ dev / pid

यो फाईल पढ्दा हालको प्रक्रियाको प्रक्रिया आईडी फर्काउँछ, दशमलवमा, नयाँलाइनसँग समाप्त भयो।

/ dev / ppid

यो फाईल पढ्दा हालको प्रक्रियाको पेरिस प्रक्रिया आईडी फर्काउँछ, दशमलवमा, नयाँलाइनसँग समाप्त हुन्छ।

/ dev / pgrpid

यस फाईल पढ्दा हालको प्रक्रियाको प्रक्रिया समूह ID फर्काउँछ, दशमलवमा, नयाँलाइनसँग समाप्त भयो।

/ dev / प्रयोगकर्ता

यो फाईल पढ्ने एक नयाँ रेकर्डसँग समाप्त गरिएको रेकर्डलाई फर्काउँछ। क्षेत्र रिक्त स्थानहरूसँग अलग छन्। $ 1 ले getuid (2) प्रणाली कलको मूल्य हो, $ 2 geteuid (2) प्रणाली कल को मूल्य हो, $ 3 getgid (2) प्रणाली कल को मूल्य हो, र $ 4 getegid (2) को मूल्य हो प्रणाली कल। यदि कुनै अतिरिक्त क्षेत्रहरू छन् भने, तिनीहरू समूह समूहहरू द्वारा प्राप्त समूहहरू छन् (2)। बहुविध समूहहरू सबै प्रणालीहरूमा समर्थित हुन सक्दैनन्।

संख्यात्मक प्रकार्यहरू

AWK सँग निम्न निर्मित इन गणित प्रकार्यहरू छन्:

atan2 ( y , x )

Y / x को रेडियनहरूमा आर्किटेन्ट फर्काउँछ।

cos ( expr )

रेडियनहरूमा एक्स्पोको कोसिन फर्काउँछ।

EX ( expr )

घातक प्रकार्य।

int ( expr )

पूर्णांकमा ट्रंकहरू।

लग ( expr )

प्राकृतिक लारिथम प्रकार्य।

rand ()

0 र 1 बीचको यादृच्छिक नम्बर फर्काउँछ।

पाप ( expr )

रेडियनहरूमा छ expr को सिन्क्स फर्काउँछ।

sqrt ( expr )

वर्ग मूल प्रकार्य।

srand ( [ expr ] )

यादृच्छिक नम्बर जनरेटरको लागि नयाँ बीजको रूपमा expr प्रयोग गर्दछ। यदि कुनै expr प्रदान गरिएको छैन भने, दिनको समय प्रयोग गरिन्छ। रिटर्न मान यादृच्छिक नम्बर जनरेटरको लागि अघिल्लो बीउ हो।

स्ट्रिंग प्रकार्यहरू

Gawk सँग निम्न निर्मित इन स्ट्रिंग प्रकार्यहरू छन्:

asort ( s [ , d ]

स्रोत array मा तत्वहरूको संख्या फर्काउँछ। को सामाग्री मानहरु को तुलना को लागी गूक को सामान्य नियमहरुको उपयोग गरेर क्रमबद्ध गरिएको छ, र को क्रमबद्ध मानहरु को सूचकांक क्रमबद्ध संग अनुक्रमित पूर्णांकहरु संग बदल दिए गए हो। यदि वैकल्पिक गन्तव्य सरणी निर्दिष्ट गरिन्छ, तब s पहिलो मा डुप्लिकेट गरिएको छ , र त्यसपछि d क्रमबद्ध गरिएको छ, स्रोत array s अनुक्रमणिका को अपरिवर्तित छोडेर।

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

नियमित अभिव्यक्तिको मेलहरूको लागि लक्षित स्ट्रिंग टी खोज्नुहोस्। यदि एच जी वा G सँग सुरुवात एक स्ट्रिंग हो, त्यसपछि s को सबै मेलहरू बदल्नुहोस्। अन्यथा, h नम्बर हो भनेर सूचित गर्ने म्याचको म्याच। यदि टी प्रदान गरिएन भने यसको सट्टा $ 0 प्रयोग गरिन्छ। प्रतिस्थापन पाठ्य भित्र, अनुक्रम \ n , जुन 1 देखि 9 सम्मको अंक हो, केवल पाठ को संकेत गर्न को लागी n 'th parentorized subexpression संग मेल खाने को लागी। अनुक्रम \ 0 ले सम्पूर्ण मिलान गरिएको पाठलाई प्रतिनिधित्व गर्दछ, जस्तै क्यारेक्टर उप ()gsub () को विपरीत, परिमार्जित स्ट्रिङ प्रकार्यको परिणामको रूपमा फर्काइएको छ, र मूल लक्ष्य स्ट्रिंग परिवर्तन गरिएको छैन

gsub ( r , s [ , t ] )

प्रत्येक सबस्ट्रिंगको लागि नियमित अभिव्यक्ति आर सँग string string मा मिल्दछ , स्ट्रिङ एसलाई बदल्नुहोस् , र प्रतिस्थापनहरूको संख्या फर्काउनुहोस्। यदि टी प्रदान गरिएन भने $ 0 प्रयोग गर्नुहोस्। एक प्रतिस्थापन पाठमा पाठ जो वास्तव मा मेल खाएको थियो साथ बदलिएको छ। साब्दिक प्राप्त गर्नका लागि प्रयोग गर्नुहोस्। (यो को रूप मा टाइप गर्नु पर्छ "\\ &" ; GAWK हेर्नुहोस् : उप () , gsub ()gensub () को प्रतिस्थापन पाठमा & s र backslashes को नियमहरूको पूर्ण चर्चाको लागि प्रभावकारी AWK प्रोग्रामिंग ।)

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

स्ट्रिङ एस , वा 0 मा string string को सूचकांक फर्काउँछ भने टी छैन। (यसले तार्किक सूचकांकहरू एकै ठाउँमा सुरु गर्दछ भन्ने कुरा हो।)

लम्बाइ ( [ हरू ]

यदि आपूर्ति छैन भने स्ट्रिंगको लम्बाइ , वा $ 0 लम्बाइ फर्काउँछ

म्याच ( एस , आर [ , एक ] )

जहाँ नियमित अभिव्यक्ति r हुन्छ, वा 0 अवस्थित छैन जहाँ स्थितिमा फर्काउँछ, र RSTARTRENGTH को मान सेट गर्दछ। ध्यान दिनुहोस् कि तर्क क्रम ~ ~ अपरेटरको लागि हो: str ~ पुनः । यदि सरणी प्रदान गरिएको छ भने, सफा गरिन्छ र तत्त्व तत्व 1 मा n को अंशहरूसँग भरेको छ जुन सम्बन्धित पेनिकेसेसाइज गरिएको सबस्प्रेसनसँग मेल खान्छ। पुरातत्व अभिव्यक्तिद्वारा मिलाएको 0'अन्त तत्वको भाग समावेश गर्दछ r

विभाजन ( हरू , एक [ , r ] )

स्ट्रिङ एस सङ्ग्रहमा regular expression r मा विभाजन गर्दछ, र क्षेत्रहरूको संख्या फर्काउँछ। यदि आर हटाइएको छ भने, एफएस यसको सट्टा प्रयोग गरिन्छ। Array खाली गरिएको पहिलो। विभाजनले समान रूपमा फील्ड विभाजन गर्न व्यवहार गर्दछ, माथि उल्लेख गरिएको।

sprintf ( fmt , expr-list )

Fmt को अनुसार expr-list प्रिन्ट गर्दछ, र परिणामकारी स्ट्रिंग फर्काउँछ।

strtonum ( str )

Str जाँच गर्दछ, र यसको संख्यात्मक मान फर्काउँछ। यदि str 0 प्रमुखसँग सुरू हुन्छ भने, स्टन्टमम () मानिन्छ कि str एक अङ्कल नम्बर हो। यदि str 0x वा 0X को साथ सुरू हुन्छ भने, स्टन्टमम () ले मान्छ कि str हेक्सडेसिमल नम्बर हो।

उप ( आर , एस [ , टी ] )

केवल gsub () जस्तै, तर केवल पहिलो मिल्दो सब्सिङ् प्रतिस्थापन गरिएको छ।

सबस्ट ( एस , [ , एन ] )

I मा शुरुवात को सबै भन्दा अधिक n - वर्णक सबस्ट्रिङ फर्काउँछ। यदि n छोड्नुभयो भने बाँकीको प्रयोग गरिन्छ।

tolower ( str )

String string को प्रतिलिपि फर्काउँदछ , सबै शीर्ष-क्यारेक्टर क्यारेक्टरहरूसँग सम्बन्धित यसको निचो-केस काउन्टरहरूमा स्ट्रान्स गरिएको। गैर-वर्णमाला वर्णहरू अपरिवर्तित छैनन्।

टपपर ( str )

स्ट्रिंग स्ट्रिको प्रतिलिपि फर्काउँछ, सबै निचो-केस अक्षरहरूसँग यसको सम्बन्धित उच्च-विषय समकक्षहरूमा अनुवादित स्ट्रन्कमा। गैर-वर्णमाला वर्णहरू अपरिवर्तित छैनन्।

समय कार्यहरू

AWK कार्यक्रमहरूको प्राथमिक प्रयोग मध्ये एक कारण लग फाइलहरू प्रसोधन गर्दै समय स्टाम्प जानकारी समावेश गर्दछ, गक समय स्ट्याम्पहरू प्राप्त गर्न र तिनीहरूलाई ढाँचा गर्नका लागि निम्न कार्यहरू प्रदान गर्दछ।

mktime ( datespec )

Rurns मितिहरू सिस्टिम () द्वारा फर्काइएका जस्तै फारमको एक टाइम स्ट्याम्पमा। मितिपेक फारम YYYY MM डीडीएचएमएमएसएसएस [DST] को स्ट्रिङ हो। स्ट्रिङको सामग्री क्रमश: 6 वा सात नम्बरहरू क्रमशः प्रतिनिधित्व गर्दै शताब्दी सहित पूरा वर्ष, 1 देखि 12 महिना, 1 देखि 31 सम्मको दिन, 0 देखि 23 दिनको दिन, 0 देखि मिनेट 59, र दोस्रो देखि 0 देखि 60 सम्म, र वैकल्पिक डेलाइट बचत झण्डा। यी संख्याहरूको मानहरू निर्दिष्ट गरिएका दायराहरूमा आवश्यक पर्दैन। उदाहरणको लागि, midnight को 1 घण्टाको -1 घण्टाको अर्थ हो। मूल-शून्य ग्रेलगियन क्यालेन्डर ग्रहण गरिन्छ, वर्ष 1 अघि अघि 1 र 1 वर्ष अघि -1 वर्ष। समय स्थानीय समयक्षेत्रमा मानिन्छ। यदि डेलाइट बचत झण्डा सकारात्मक छ भने, समयको डेलाइटलाइट समयको लागी मानिन्छ; यदि शून्य, समय मानक समय मानिन्छ; र यदि नकारात्मक (पूर्वनिर्धारित), डेलाइट बचत समय निर्दिष्ट समयको लागि प्रभावमा छ कि निर्धारण गर्न को लागि mktime () प्रयास। यदि मितिपट्टीमा पर्याप्त तत्वहरू समावेश छैन वा परिणामस्वरूप समय सीमा बाहिर छ भने, mktime () फर्काउँछ -1।

चरम ( [ ढाँचा [ , टाइमस्ट्याम्प ]] )

ढाँचामा टाइमस्टैम्प ढाँचामा ढाँचा अनुसार टाइमस्टैम्प (सिस्टाइम) द्वारा फर्काइएको रूपमा एउटै रूपको हुनुपर्छ। यदि टाइमस्ट्याम्प हराइरहेको छ भने, दिनको वर्तमान समय प्रयोग गरिन्छ। यदि ढाँचा हराइरहेको छ भने, मिति (1) को उत्पादनको बराबर एक डिफल्ट ढाँचा प्रयोग गरिन्छ। ANSI सीमा strफ्टime () प्रकार्यको लागि निर्दिष्टता हेर्नका लागि ढाँचा रूपान्तरणका लागि निर्दिष्ट हेर्नुहोस्। स्ट्राइफाइम (3) को एक सार्वजनिक-डोमेन संस्करण र यसको लागि एक व्यक्ति पृष्ठ गोकको साथ आउँछ ; यदि त्यो संस्करण गक निर्माण गर्न प्रयोग भएको थियो, त्यसपछि त्यस पृष्ठमा वर्णन गरिएको सबै परिवर्तनहरू गकमा उपलब्ध छन्

systime ()

एपोक (1 9 70-01-01 00:00:00 यूटीसी POSIX प्रणालीहरूमा) पछि सेकेन्डको संख्याको रूपमा दिनको वर्तमान समय फर्काउँछ।

बिट हेरफेर कार्यहरू

Gawk को संस्करण 3.1 को साथ शुरू गर्दै, निम्न बिट हेरफेर कार्यहरू उपलब्ध छन्। तिनीहरू दोहोरो परिशुद्धता फ्लोटिंग बिन्दु मानहरू कन्फिगरेटेड लामो इनटेजरहरूमा रूपान्तरित गरेर सञ्चालन गर्दैछन्, र त्यसपछि परिणाम फर्काउने फिटिंग बिन्दुलाई बदलिदिन्छ। कार्यहरू निम्न छन्:

र ( v1 , v2 )

Bitwise र v1v2 द्वारा प्रदान गरिएका मानहरूको फर्काउनुहोस्।

शिकायत ( वैल )

Valwise को बिरालो पूरक फर्काउनुहोस्।

lshift ( वैल , गणना )

गणना बिटहरू द्वारा भोल्युमको मूल्यलाई फर्काउनुहोस्।

वा ( v1 , v2 )

V1v2 द्वारा प्रदान गरिएको बिटको OR वा फर्काउनुहोस्।

rshift ( वैल , गणना )

गणना बिटहरू द्वारा वैल , मूल्यवृद्धि दायाँको मान फर्काउनुहोस्।

एक्सोर ( v1 , v2 )

V1v2 द्वारा दिइएको मानहरूको बिटवाईई XOR फर्काउनुहोस्।

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

गकको संस्करण 3.1 सँग सुरु हुँदै, निम्न कार्यहरू तपाईंको AWK कार्यक्रम भित्र चलिरहेको समयको अनुवादको लागि प्रयोग हुन सक्छ। पूर्ण विवरणका लागि, GAWK हेर्नुहोस् : प्रभावी AWK प्रोग्रामिंग

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

डाइरेक्टरी निर्दिष्ट गर्दछ जहाँ gmo .mo फाईलहरूको लागि देखिन्छ, यदि उनी `` मानक '' स्थानहरूमा राख्न वा सकिँदैन (जस्तै, परीक्षणको बेला)। यसले डाइरेक्टरी `` बाध्य छ जहाँ डाइरेक्टरी फर्काउँछ। ''

डिफल्ट डोमेन TEXTDOMAIN को मान हो। यदि डाइरेक्टरी निलङ स्ट्रिङ हो ( "" ), त्यसपछि bindtextdomain () दिइएको डोमेनको लागि वर्तमान बाध्यता फर्काउँछ।

dcgettext ( string [ , domain [ , category ]] )

स्थानीय कोटी श्रेणीको लागि पाठ डोमेन डोमेनमा स्ट्रिंगको अनुवाद फर्काउँछ। डोमेनको लागि डिफल्ट मान TEXTDOMAIN को वर्तमान मान हो। वर्गको लागि पूर्वनिर्धारित मान "LC_MESSAGES" हो

यदि तपाइँ कोटीको लागि एक मान प्रदान गर्नुहुन्छ भने, यो GAWK मा वर्णन गरिएको एक ज्ञात स्थानीय कोटि को बराबर एक स्ट्रिंग हुनुपर्छ : प्रभावकारी AWK प्रोग्रामिंग । तपाईंले पाठ डोमेन पनि आपूर्ति गर्नु पर्छ। यदि तपाइँ हालको प्रयोगक्षेत्र प्रयोग गर्न चाहनुहुन्छ भने TEXTDOMAIN प्रयोग गर्नुहोस्।

dcngettext ( string1 , string2 , number [ , domain [ , category ]] )

स्थानीय श्रेणी कोटिको लागि टेक्स्ट डोमेन डोमेनमा string1string2 को अनुवाद को लागि प्रयोग गरिएको बहुवचन रूप फर्काउँछ। डोमेनको लागि डिफल्ट मान TEXTDOMAIN को वर्तमान मान हो। वर्गको लागि पूर्वनिर्धारित मान "LC_MESSAGES" हो

यदि तपाइँ कोटीको लागि एक मान प्रदान गर्नुहुन्छ भने, यो GAWK मा वर्णन गरिएको एक ज्ञात स्थानीय कोटि को बराबर एक स्ट्रिंग हुनुपर्छ : प्रभावकारी AWK प्रोग्रामिंग । तपाईंले पाठ डोमेन पनि आपूर्ति गर्नु पर्छ। यदि तपाइँ हालको प्रयोगक्षेत्र प्रयोग गर्न चाहनुहुन्छ भने TEXTDOMAIN प्रयोग गर्नुहोस्।

प्रयोगकर्ता-आधारित कार्यहरू

AWK मा प्रकार्यहरू निम्न रूपमा परिभाषित गरिएका छन्:

प्रकार्य नाम ( परिमिति सूची ) { बयान }

प्रकार्यहरूलाई निष्पादित गरिन्छ जब तिनीहरू पैटर्न वा कार्यहरूमा अभिव्यक्ति भित्रबाट बोलाइन्छ। प्रकार्य कलमा आपूर्ति गरिएको वास्तविक प्यारामिटरहरू प्रकार्यमा घोषित औपचारिक प्यारामिटरहरू इन्स्टान्नेट गर्न प्रयोग गरिन्छ। अर्गानहरू सन्दर्भद्वारा पारित हुन्छ, अन्य चरहरू मान द्वारा पारित हुन्छ।

चूंकि प्रकार्य मूलतः AWK भाषा को भाग थिएन, स्थानीय चर को लागि प्रावधान बल्कि घूमती छ: उनलाई पैरामीटर सूची मा अतिरिक्त पैरामीटर को रूप मा घोषित गरिन्छ। अधिवेशनले स्थानीय परिमितिहरूलाई प्यारामिटरबाट अलग-अलग स्थानहरूमा पैरामीटर सूचीमा विभाजित गरेको छ। उदाहरणका लागि:

प्रकार्य f (p, q, a, b) # a and b local {...} / abc / {...; f (1, 2); ...}

बायाँ पङ्क्तिबद्धतामा प्रकार्य कललाई तुरुन्तै अन्तरिक्ष अन्तरिक्ष ठाउँ बिना, प्रकार्य नामको पालना गर्न आवश्यक छ। यो कन्टेनरेसन अपरेटर संग एक syntactic अस्पष्टता देखि बचने को लागि छ। यो प्रतिबन्ध माथि सूचीबद्ध निर्मित कार्यहरूमा लागू हुँदैन।

प्रकार्यहरू एक-अर्कालाई कल गर्न सक्छन् र पुनरावृत्त हुन सक्छ। स्थानीय चरको रूपमा प्रयोग गरिएको प्रकार्य प्यारामिटरहरू फंक्शन आविष्कारमा नील स्ट्रिङ र शून्य नम्बरमा सुरू हुन्छ।

कार्यबाट मान फर्काउन फिर्ती एक्प्रेशन प्रयोग गर्नुहोस्। रिटर्न मान यदि कुनै मान प्रदान गरिएको छैन, वा यदि प्रकार्य `` बन्द बन्द '' द्वारा रिटर्न हुन्छ।

यदि --लिन्ट प्रदान गरिएको छ भने, गोकले पार्स टाइममा अनावश्यक प्रकार्यहरूलाई कल समयको सट्टा चेतावनी दिन्छ। रन समय मा एक अपरिभाषित प्रकार्यलाई कल गर्दै घातक त्रुटि हो।

Func शब्द प्रकार्यको स्थानमा प्रयोग गर्न सकिन्छ।

नयाँ तरिकाले नयाँ कार्यहरू लोड गर्दै

गकको संस्करण 3.1 सँग सुरु हुँदै , तपाइँ गतिशील ग्याक इन्टरनेटरमा नयाँ निर्मित इन प्रकार्यहरू गतिशील रूपमा थप्न सक्नुहुनेछ। पूरा विवरण यस म्यानुअल पृष्ठको दायराभन्दा बाहिर हो; GAWK हेर्नुहोस् : विवरणका लागि प्रभावकारी AWK प्रोग्रामिङ

विस्तार ( वस्तु , प्रकार्य )

वस्तुद्वारा नामित साझा वस्तु फाइललाई गतिशील रूपमा लिङ्क गर्नुहोस्, र त्यो वस्तुमा प्रकार्यलाई आह्वान गर्नुहोस् , प्रारम्भिक प्रदर्शन गर्न। यी दुवैलाई तारको रूपमा उपलब्ध गराइनुपर्छ। प्रकार्यद्वारा फर्काइएको मान फर्काउँछ।

यो प्रकार्य प्रदान गरिएको छ र GAWK मा प्रभावकारी: प्रभावी AWK प्रोग्रामिंग छ , तर यस सुविधाको बारेमा सबै कुरा अर्को रिलीजमा बदल्न सम्भव छ। हामी दृढतापूर्वक सिफारिस गर्छौं कि तपाइँ कुनै पनि चीजको लागि यो सुविधा प्रयोग गर्नुहुन्न जुन तपाईं फेरि पुन: तयार हुनुहुन्न।

सिग्नलहरू

pgawk दुई संकेतहरू स्वीकार गर्दछ। सिग्नर 1 ले प्रोफाईल फाईलमा प्रोफाइल र प्रकार्य कल स्ट्याक डम्प गर्नको कारणले गर्दा, जो कि awkprof.out हो , वा प्रोफाइल विकल्पसँग केहि फाइल नामकरण गरिएको थियो। यो फेरि जारी छ। SIGHUP ले यो प्रोफाइल र प्रकार्य कल स्ट्याक डम्प गर्न र त्यसपछि बाहिर निस्कन सक्छ।

उदाहरणहरू

सबै प्रयोगकर्ताहरूको लगइन नामहरू छाप्नुहोस् र क्रमबद्ध गर्नुहोस्: BEGIN {FS = ":"} {$ 1 $ छाप्नुहोस् "क्रमबद्ध"} फाइलमा रेखाहरू गणना गर्नुहोस्: {nlines ++} END {print nlines} फाइलमा यसको संख्यामा प्रत्येक रेखालाई पूर्वनिर्धारित गर्नुहोस्: {FNR, $ 0} कान्ट्रेट र रेखा नम्बर (विषयमा भिन्नता): {print NR, $ 0}

आन्तरिककरण

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

गक 'BEGIN {प्रिन्ट "हेलो, संसार"}'

संधै नमस्कार, संसार । तर,

गक 'BEGIN {प्रिन्ट _ "होलो, संसार"}'

हुन सक्छ बोजजाउ, फ्रान्समा मान्ड

एक स्थानीयकरण AWK कार्यक्रम उत्पादन र चलिरहेको धेरै चरणहरू छन्।

1।

तपाईंको प्रोग्रामसँग सम्बद्ध नाममा पाठ डोमेन सेट गर्न TEXTDOMAIN चरमा मान असाइन गर्न BEGIN कार्य थप्नुहोस्।


BEGIN {TEXTDOMAIN = "myprog"}

यसले गोकलाई तपाईंको कार्यक्रम संग सम्बन्धित MOO फाइल फेला पार्न अनुमति दिन्छ। यो चरण बिना, गोकले पाठ पाठ डोमेन प्रयोग गर्दछ, जुन सम्भवतः तपाईंको प्रोग्रामको अनुवादहरू समावेश गर्दैन।

2।

सबै तारहरू मार्क गर्नुहोस् जुन प्रमुख underscores सँग अनुवाद गरिएको हुनुपर्छ।

3।

आवश्यक भएमा, उपयुक्त रूपमा तपाईंको कार्यक्रममा dcgettext () र / वा bindtextdomain () कार्यहरू प्रयोग गर्नुहोस्।

4।

Gawk चलाउनुहोस् --gen-po -f myprog.awk> myprog.po तपाईंको कार्यक्रमको लागि एक .po फाइल उत्पन्न गर्न।

5।

उचित अनुवाद प्रदान गर्नुहोस्, र एक .mo फाइल निर्माण र स्थापना गर्नुहोस्।

अन्तर्राष्ट्रियकरण विशेषताहरू GAWK मा पूर्ण विवरणमा वर्णन गरिएको छ : प्रभावी AWK प्रोग्रामिंग

Posix संगतता

गोक को लागि एक प्राथमिक लक्ष्य POSIX मानक संग संगतता हो, साथै साथ UNIX awk को नवीनतम संस्करण संग। यस अन्तमा, गकले निम्न प्रयोगकर्तालाई देखाउने सुविधाहरू समावेश गर्दछ जुन AWK पुस्तकमा वर्णन गरिएको छैन, तर अर्कैको बेल प्रयोगशालाओं संस्करणको भाग हो, र POSIX मानकमा हो।

पुस्तक इंगित गर्दछ कि आदेश लाइन चर असाइनमेंट हुन्छ जब अर्कै अन्यथा फाइल को रूप मा तर्क को रूप मा खुला हुनेछ, जो BEGIN ब्लक को निष्पादित गरे पछि हुन्छ। यद्यपि, अघिल्लो कार्यान्वयनमा, कुनै पनि असाइनमेन्ट कुनै पनि फाईल नामहरू अघि देखा पर्दा, कार्य अघि BEGIN ब्लक चलाइएको थियो। अनुप्रयोगहरू यो `` सुविधामा निर्भर गर्न आए। '' जब यसको दस्तावेजसँग मेल खाने बेलामा एल्क परिवर्तन भएको थियो, -v विकल्प निष्पादन गर्नु भन्दा पहिले कार्यान्वयन गर्न चर गर्न असक्षम गर्न -v विकल्प पुरानो व्यवहारमा राखिएको अनुप्रयोगहरू समायोजन गर्न थपियो। (यो सुविधा दुवै बेल प्रयोगशालाओं र जीएनयू विकासकर्ताहरूले सहमत भए।)

कार्यान्वयन विशेष सुविधाहरूको लागि -W विकल्प POSIX मानकबाट हो।

प्रसोधन गर्दा जब तर्कले विशेष विकल्प `` - '' प्रयोग गर्दछ जुन आर्गुमेन्टहरूको अन्त्यमा संकेत गर्दछ। संगतता मोडमा, यो चेतावनी दिन्छ तर अन्यथा अपरिभाषित विकल्पहरूलाई बेवास्ता गर्दछ। सामान्य अपरेसनमा, यो तर्क प्रक्रियाका लागि AWK प्रोग्राममा पारित हुन्छ।

AWK पुस्तक srand () को फिर्ती मूल्य परिभाषित गर्दैन। POSIX मानकले यसलाई बेठीक संख्या अनुक्रमहरूको ट्रयाक राख्न अनुमति दिनको लागि बीज प्रयोग गरिरहेको छ। यसैले गण्ड मा srand () लाई पनि आफ्नो वर्तमान बीउ फर्काउँछ।

अन्य नयाँ सुविधाहरू छन्: बहु- एफ विकल्पहरूको प्रयोग (MKS अचबाट ); ENVIRON array; \ a , र \ v सेकेन्ड अनुक्रम (मूल रूप देखि गक मा गरियो र बेल प्रयोगशालाओं को संस्करण मा फिर्ता खिलाया गयो); tolower ()टौपर () निर्माणमा कार्यहरू (बेल प्रयोगशालाओं संस्करण बाट); र printf मा ANSI सी रूपान्तरण विशिष्टताओं (बेल प्रयोगशालाओं संस्करण मा पहिलो पल्ट गरियो)।

ऐतिहासिक विशेषताहरू

त्यहाँ दुईवटा ऐतिहासिक AWK कार्यान्वयनहरू छन् जुन गोकले समर्थन गर्दछ। पहिलो, यो लम्बाई () निर्मित ईन प्रकार्यलाई कल गर्न मात्र सम्भव छ, न कि यो तर्क मात्र होइन, तर पिरोइन बिना पनि! यसैले,

a = length # Holy Algol 60, Batman!

उस्तै जस्तो छ

a = length ()
a = length ($ 0)

यो सुविधा POSIX मानकमा `` घटाइएको '' को रूपमा चिन्ह लगाइएको छ, र गोकले यसको प्रयोगको बारेमा चेतावनी दिन्छ भने - -लिन्ट आदेश रेखामा निर्दिष्ट गरिएको छ।

अर्को सुविधा केही समयको शरीर बाहिर जारी वा ब्रेक बयानहरूको प्रयोग हो, को लागि वा पाश गर्नुहोस्। परम्परागत AWK कार्यान्वयनले अर्को प्रयोगको समान जस्तै प्रयोगको रूपमा व्यवहार गरेको छ। गक यो प्रयोगको समर्थन गर्दछ यदि --ल्टैडिकल निर्दिष्ट गरिएको छ।

GNU एक्सटेन्सन

Gawk ले POSIX अर्कमा धेरै विस्तारहरू छन्। तिनीहरू यस खण्डमा वर्णन गरिएका छन्। यहाँ वर्णन गरिएका सबै एक्सटेन्सनहरू - वैकल्पिक विकल्पको साथ गक चलाएर असक्षम गर्न सकिन्छ।

POSIX अक्टोबरमा गकको निम्न विशेषताहरू उपलब्ध छैनन्।

*

-f विकल्प मार्फत नामित फाईलहरूको लागि कुनै बाटो खोज गरिएको छैन। यसैले AWKPATH वातावरण चर विशेष छैन।

*

\ X पछाडि अनुक्रम। (असक्षम पारिएको --पोक्स ।)

*

Fflush () प्रकार्य। (असक्षम पारिएको --पोक्स ।)

*

पछि लाइनहरू जारी गर्ने क्षमता ?:। (असक्षम पारिएको --पोक्स ।)

*

AWK कार्यक्रममा अक्टोबर र हेक्साडेसिमल प्लास्टन्ट।

*

अर्गिन्ड , बाइनोडेम , ईरानो , LINT , RTTEXTDOMAIN चरहरू विशेष होइनन्।

*

IGNORECASE चर र यसको साइड इफेक्ट उपलब्ध छैन।

*

FIELDWIDTHS चर र स्थिर चौडाइ क्षेत्र विभाजन।

*

PROCINFO array उपलब्ध छैन।

*

नियमित अभिव्यक्तिको रूपमा RS को प्रयोग।

*

I / O पुनःनिर्देशनका लागि उपलब्ध विशेष फाइल नामहरू पहिचान भएन।

*

सह-प्रवाह सिर्जना गर्ने सहकारी

*

व्यक्तिगत वर्णहरू विभाजित गर्ने क्षमता Full को मानको रूपमा निल स्ट्रिङ प्रयोग गरेर, र विभाजित () लाई तेस्रो तर्कको रूपमा।

*

वैकल्पिक दोस्रो तर्कलाई बन्द () प्रकार्यमा।

*

म्याच () प्रकार्यमा वैकल्पिक तेस्रो तर्क।

*

प्रिन्ट स्प्रेडिफायरहरू प्रिन्टस्प्रिन्टिफ () सँग प्रयोग गर्ने क्षमता।

*

Array को सम्पूर्ण सामग्री मेटाउन मेटाउने मेट्को प्रयोग।

*

हालको इन्पुट फाइलको प्रसोधन छोड्न अर्कोफाइलको प्रयोग।

*

र () , asort () , bindtextdomain () , शिकायत () , dcgettext () , gensub () , lshift () , mktime () , या () , rshift () , strftime () , strtonum () , systime ()xor () प्रकार्यहरू।

*

स्थानीय योग्य तारहरू।

*

एक्सटेन्सन (विस्तार) संग नयाँ रूपान्तरणमा नयाँ निर्मित कार्यहरू थप्दै।

AWK पुस्तकले बन्द () प्रकार्यको फिर्ती मान परिभाषित गर्दैन। Gawk को नजिक () fclose (3) बाट मान फर्काउँछ वा क्रमशः आउटपुट फाइल वा पाइप क्रमशः जब बन्द हुन्छ। यसले इनपुट पाइप बन्द गर्दा प्रक्रियाको बाहिर निस्कन्छ। फिर्ती मान -1 हो भने नामकरण फाइल, पाइप वा सह प्रक्रिया पुन: वितरणको साथ खोलिएको थिएन।

जब ग्रुप -अन्तर्गत विकल्पको साथ बोलाइएको हुन्छ, यदि एफ-एफ विकल्प `` t '' हो भने, त्यसपछि FS ट्याब क्यारेक्टरमा सेट गरिएको छ। ध्यान दिनुहोस् कि टाइपिङ गक -एफ \ t ... मात्र शेलले `` t '' उद्धरण गर्दछ, र एफ- विकल्पमा `` \ t '' पास गर्दैन। किनकी यो एक बदसूरत विशेष मामला हो, यो पूर्वनिर्धारित व्यवहार होइन। यो व्यवहार पनि उत्पन्न हुँदैन यदि --posix निर्दिष्ट गरिएको छ। फिल्ड विभाजकको रूपमा साँच्चै ट्याब क्यारेक्टर प्राप्त गर्न, यो एक मात्र उद्धरण शब्दहरू प्रयोग गर्न उत्तम छ: gawk -F '\ t' ...।

अन्य आदेशहरू हेर्नुहोस् : पर्खनुहोस् , lp , पूरा , निष्पादन , getfacl , ioctl , uniq , rmmod , pvcreate , rsh , unix2dos , cal , fs , cd , iwpriv , swapon , autofs , talk , motd , free , lpr , execl , fdisk , मा , जो , आईकोन्कफिग , आइकोन्फिग , vgdisplay , खुला , lsmod , ntohs , मेलq , मार , wtmp