अंग्रेज़ीफ्रेंचस्पेनिश

Ad


ऑनवर्क्स फ़ेविकॉन

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

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

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

कार्यक्रम:

नाम


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

SYNOPSIS


मौको [-W विकल्प] [-F मूल्य] [-v वर = मान] [--] 'प्रोग्राम टेक्स्ट' [फाइल ...]
मौको [-W विकल्प] [-F मूल्य] [-v वर = मान] [-f कार्यक्रम फाइल] [--] [फाइल...]

वर्णन


मौको एडब्ल्यूके प्रोग्रामिंग भाषा के लिए एक दुभाषिया है। AWK भाषा के लिए उपयोगी है
डेटा फ़ाइलों में हेरफेर, पाठ पुनर्प्राप्ति और प्रसंस्करण, और प्रोटोटाइप के लिए और
एल्गोरिदम के साथ प्रयोग। मौको एक नई awk अर्थ यह AWK भाषा को लागू करता है
जैसा कि अहो, कर्निघन और वेनबर्गर में परिभाषित किया गया है, RSI AWK प्रोग्रामिंग भाषा: हिन्दी, एडिसन-वेस्ले
प्रकाशन, 1988। (इसके बाद एडब्ल्यूके पुस्तक के रूप में जाना जाता है।) मौको Posix . के अनुरूप है
1003.2 (ड्राफ्ट 11.3) AWK भाषा की परिभाषा जिसमें कुछ विशेषताएं शामिल हैं:
AWK पुस्तक में वर्णित है, और मौको कम संख्या में एक्सटेंशन प्रदान करता है।

AWK प्रोग्राम किसका क्रम है? पैटर्न {कार्य} जोड़े और फ़ंक्शन परिभाषाएँ। छोटा
शेल से बचने के लिए प्रोग्राम आमतौर पर '' ' में संलग्न कमांड लाइन पर दर्ज किए जाते हैं
व्याख्या। -f विकल्प वाली फ़ाइल से लंबे प्रोग्राम पढ़े जा सकते हैं। आंकड़े
इनपुट को कमांड लाइन पर या मानक इनपुट से फाइलों की सूची से पढ़ा जाता है जब
सूची खाली है। रिकॉर्ड विभाजक द्वारा निर्धारित इनपुट को रिकॉर्ड में तोड़ा जाता है
चर, RS। प्रारंभ में, RS = "\n" और रिकॉर्ड लाइनों के समानार्थी हैं। प्रत्येक रिकॉर्ड है
प्रत्येक के खिलाफ तुलना पैटर्न और यदि यह मेल खाता है, तो प्रोग्राम टेक्स्ट {कार्य} is
मार डाला।

विकल्प


-F मूल्य क्षेत्र विभाजक सेट करता है, FS, करने के लिए मूल्य.

-f पट्टिका कार्यक्रम का पाठ से पढ़ा जाता है पट्टिका कमांड लाइन के बजाय। विभिन्न
-f विकल्पों की अनुमति है।

-v वर = मान प्रदान करती है मूल्य कार्यक्रम चर करने के लिए था.

- विकल्पों के स्पष्ट अंत को इंगित करता है।

उपरोक्त विकल्प AWK के किसी भी Posix संगत कार्यान्वयन के साथ उपलब्ध होंगे, और
कार्यान्वयन विशिष्ट विकल्पों के सामने प्रस्तुत किया गया है -W. मौको छह प्रदान करता है:

-W संस्करण मौको इसके संस्करण और कॉपीराइट को stdout और संकलित सीमाओं को लिखता है
stderr और 0 से बाहर निकलता है।

-W डंप एक कोडांतरक लिखता है जैसे कि आंतरिक प्रतिनिधित्व की सूची
प्रोग्राम को स्टडआउट करने के लिए और 0 से बाहर निकलता है (सफल संकलन पर)।

-W इंटरएक्टिव सेट अनबफर स्टडआउट को लिखता है और लाइन बफर्ड स्टड से पढ़ता है।
स्टड से रिकॉर्ड्स के मूल्य की परवाह किए बिना लाइनें हैं RS.

-W कार्यकारी पट्टिका कार्यक्रम का पाठ से पढ़ा जाता है पट्टिका और यह आखिरी विकल्प है। पर उपयोगी
सिस्टम जो का समर्थन करते हैं #! निष्पादन योग्य के लिए "मैजिक नंबर" कन्वेंशन
स्क्रिप्ट।

-W स्प्रिंटफ =संख्या के आकार को समायोजित करता है मॉक की आंतरिक स्प्रिंटफ बफर to संख्या बाइट्स। इससे अधिक
इस विकल्प का दुर्लभ उपयोग इंगित करता है मौको पुन: संकलित किया जाना चाहिए।

-W posix_space बल मौको '\n' को स्थान नहीं मानना।

संक्षिप्त रूप -W[vdiesp] पहचाने जाते हैं और कुछ प्रणालियों पर -Wई से बचना अनिवार्य है
कमांड लाइन की लंबाई सीमाएँ।

THE AWK भाषा


1. कार्यक्रम संरचना
AWK प्रोग्राम किसका क्रम है? पैटर्न {कार्य} जोड़े और उपयोगकर्ता फ़ंक्शन परिभाषाएँ।

एक पैटर्न हो सकता है:
शुरू
अंत
अभिव्यक्ति
अभिव्यक्ति , अभिव्यक्ति

एक, लेकिन दोनों नहीं, का पैटर्न {कार्य} छोड़ा जा सकता है। अगर {कार्य} छोड़ा गया है यह है
स्पष्ट रूप से {प्रिंट}। अगर पैटर्न छोड़ा जाता है, तो यह परोक्ष रूप से मेल खाता है। शुरू और
अंत पैटर्न को एक क्रिया की आवश्यकता होती है।

स्टेटमेंट्स को न्यूलाइन, सेमी-कॉलन या दोनों द्वारा समाप्त किया जाता है। बयानों के समूह जैसे
क्रियाओं या लूप निकायों को सी के रूप में {...} के माध्यम से अवरुद्ध किया जाता है। एक ब्लॉक में अंतिम विवरण
टर्मिनेटर की जरूरत नहीं है। रिक्त पंक्तियों का कोई अर्थ नहीं है; एक खाली बयान समाप्त हो गया है
अर्धविराम के साथ। लंबे बयानों को बैकस्लैश के साथ जारी रखा जा सकता है, \. एक बयान कर सकते हैं
अल्पविराम के बाद बैकस्लैश के बिना टूट जाना, बायां ब्रेस, &&, ||, do, अन्य, सही
an . का कोष्ठक if, जब or एसटी कथन, और किसी फ़ंक्शन का दायां कोष्ठक
परिभाषा। एक टिप्पणी # से शुरू होती है और विस्तारित होती है, लेकिन इसमें पंक्ति का अंत शामिल नहीं होता है।

निम्नलिखित कथन ब्लॉक के अंदर प्रोग्राम प्रवाह को नियंत्रित करते हैं।

if ( expr ) कथन

if ( expr ) कथन अन्य कथन

जब ( expr ) कथन

do कथन जब ( expr )

एसटी ( ऑप्ट_एक्सपीआर ; ऑप्ट_एक्सपीआर ; ऑप्ट_एक्सपीआर ) कथन

एसटी ( था in सरणी ) कथन

जारी रखने के

तोड़ना

2. जानकारी प्रकार, रूपांतरण और तुलना
दो बुनियादी डेटा प्रकार हैं, संख्यात्मक और स्ट्रिंग। संख्यात्मक स्थिरांक पूर्णांक हो सकते हैं जैसे
-2, दशमलव जैसे 1.08, या वैज्ञानिक संकेतन जैसे -1.1e4 या .28E-3 में। सभी नंबर हैं
आंतरिक रूप से प्रतिनिधित्व किया जाता है और सभी गणना फ्लोटिंग पॉइंट अंकगणित में की जाती है। के लिए
उदाहरण के लिए, व्यंजक 0.2e2 == 20 सत्य है और सत्य को 1.0 के रूप में दर्शाया गया है।

स्ट्रिंग स्थिरांक दोहरे उद्धरण चिह्नों में संलग्न हैं।

"यह एक स्ट्रिंग है जिसके अंत में एक नई पंक्ति है।\n"

नई लाइन (\) से बचकर स्ट्रिंग्स को एक लाइन में जारी रखा जा सकता है। निम्नलिखित पलायन
क्रमों को पहचाना जाता है।

\\
\" "
\a अलर्ट, एएससीआई 7
\b बैकस्पेस, एएससीआई 8
\t टैब, एएससीआई 9
\n न्यूलाइन, एएससीआई 10
\v लंबवत टैब, एएससीआई 11
\f फॉर्मफीड, एएससीआई 12
\r कैरिज रिटर्न, एएससीआई 13
\ddd 1, 2 या 3 अष्टक अंक ascii ddd . के लिए
\xhh ascii hh . के लिए 1 या 2 हेक्स अंक

यदि आप किसी अन्य वर्ण \c से बचते हैं, तो आपको \c मिलता है, अर्थात, मौको भागने की उपेक्षा करता है।

वास्तव में तीन बुनियादी डेटा प्रकार हैं; तीसरा है संख्या और स्ट्रिंग जिसमें दोनों a . हैं
एक ही समय में संख्यात्मक मान और एक स्ट्रिंग मान। उपयोगकर्ता परिभाषित चर में आते हैं
अस्तित्व जब पहली बार संदर्भित किया जाता है और शुरू किया जाता है रिक्त, एक संख्या और स्ट्रिंग मान
जिसका संख्यात्मक मान 0 और स्ट्रिंग मान "" है। गैर-तुच्छ संख्या और स्ट्रिंग टाइप किया गया डेटा
इनपुट से आते हैं और आमतौर पर खेतों में जमा हो जाते हैं। (अनुभाग 4 देखें)।

एक अभिव्यक्ति का प्रकार उसके संदर्भ और स्वचालित प्रकार के रूपांतरण द्वारा निर्धारित किया जाता है
जरूरत पड़ने पर होता है। उदाहरण के लिए, कथनों का मूल्यांकन करने के लिए

वाई = एक्स + 2; जेड = एक्स "हैलो"

वेरिएबल y में स्टोर किया गया मान संख्यात्मक टाइप किया जाएगा। यदि x संख्यात्मक नहीं है, तो मान पढ़ा जाता है
x को 2 में जोड़ने और y में संग्रहीत करने से पहले संख्यात्मक में बदल दिया जाता है। संग्रहीत मूल्य
चर z में टाइप की गई स्ट्रिंग होगी, और x का मान स्ट्रिंग में परिवर्तित हो जाएगा यदि
आवश्यक और "हैलो" के साथ संयोजित। (बेशक, x में संग्रहीत मान और प्रकार है
किसी भी रूपांतरण से नहीं बदला।) एक स्ट्रिंग अभिव्यक्ति को इसके उपयोग से संख्यात्मक में परिवर्तित किया जाता है
साथ के रूप में सबसे लंबा संख्यात्मक उपसर्ग एटोफ़(3). एक संख्यात्मक अभिव्यक्ति को स्ट्रिंग में परिवर्तित किया जाता है
की जगह expr साथ में स्प्रिंटफ (CONVFMT, expr), जब तक expr मेजबान पर प्रतिनिधित्व किया जा सकता है
मशीन को एक सटीक पूर्णांक के रूप में परिवर्तित किया जाता है sprintf("%डी", expr). स्प्रिंटफ () है एक
AWK बिल्ट-इन जो की कार्यक्षमता को डुप्लिकेट करता है sprintf(3) और, CONVFMT बिल्ट-इन है
वेरिएबल का उपयोग संख्या से स्ट्रिंग में आंतरिक रूपांतरण के लिए किया जाता है और "%.6g" के लिए प्रारंभ किया जाता है।
स्पष्ट प्रकार के रूपांतरणों को मजबूर किया जा सकता है, expr "" स्ट्रिंग है और expr+0 संख्यात्मक है।

मूल्यांकन करना, expr1 रिले-ऑप expr2, यदि दोनों ऑपरेंड संख्यात्मक या संख्या और स्ट्रिंग हैं तो
तुलना संख्यात्मक है; यदि दोनों ऑपरेंड स्ट्रिंग हैं तो तुलना स्ट्रिंग है; अगर एक
ऑपरेंड स्ट्रिंग है, गैर-स्ट्रिंग ऑपरेंड कनवर्ट किया गया है और तुलना स्ट्रिंग है।
परिणाम संख्यात्मक है, 1 या 0.

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

3. नियमित भाव
AWK भाषा में, रिकॉर्ड, फ़ील्ड और स्ट्रिंग्स को अक्सर मिलान करने के लिए परीक्षण किया जाता है a नियमित
अभिव्यक्ति. रेगुलर एक्सप्रेशन स्लैश में संलग्न हैं, और

expr ~/r/

एक AWK व्यंजक है जो 1 if . का मूल्यांकन करता है expr "मैचों" r, जिसका अर्थ है का एक विकल्प
expr द्वारा परिभाषित स्ट्रिंग्स के सेट में है r. बिना किसी मिलान के व्यंजक का मूल्यांकन 0 होता है;
~ को "नॉट मैच" ऑपरेटर के साथ बदलकर, !~ अर्थ को उलट देता है। पैटर्न-क्रिया के रूप में
जोड़े,

/r/ { कार्य } तथा $0 ~/r/ { कार्य }

समान हैं, और प्रत्येक इनपुट रिकॉर्ड के लिए जो मेल खाता है r, कार्य निष्पादित किया जाता है। वास्तव में, /r/
एक एडब्ल्यूके अभिव्यक्ति है जो इसके बराबर है ($0 ~/r/) कहीं भी जब दाईं ओर को छोड़कर
एक मैच ऑपरेटर के पक्ष में या एक अंतर्निहित फ़ंक्शन के तर्क के रूप में पारित किया गया जो उम्मीद करता है a
नियमित अभिव्यक्ति तर्क।

AWK with के रूप में विस्तारित रेगुलर एक्सप्रेशन का उपयोग करता है उदा(1). रेगुलर एक्सप्रेशन
मेटाकैरेक्टर, यानी, नियमित अभिव्यक्तियों में विशेष अर्थ वाले हैं

^ $। [ ] | ( ) * + ?

रेगुलर एक्सप्रेशन वर्णों से निम्नानुसार निर्मित होते हैं:

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

\c उसी एस्केप अनुक्रम द्वारा परिभाषित एक चरित्र से मेल खाता है जिसका उपयोग किया जाता है
स्ट्रिंग स्थिरांक या शाब्दिक चरित्र c अगर \c पलायन नहीं है
अनुक्रम।

. किसी भी चरित्र से मेल खाता है (न्यूलाइन सहित)।

^ एक स्ट्रिंग के सामने से मेल खाता है।

$ एक स्ट्रिंग के पीछे से मेल खाता है।

[c1c2c3...] c1c2c3... वर्ग के किसी भी वर्ण से मेल खाता है। का अंतराल
वर्णों को एक वर्ग [...] के अंदर c1-c2 दर्शाया गया है।

[^c1c2c3...] किसी भी वर्ण से मेल खाता है जो c1c2c3 वर्ग में नहीं है...

रेगुलर एक्सप्रेशन अन्य रेगुलर एक्सप्रेशन से निम्नानुसार निर्मित होते हैं:

r1r2 मैचों r1 इसके तुरंत बाद r2 (संयोजन)।

r1 | r2 मैचों r1 या r2 (वैकल्पिक)।

r* माचिस r शून्य या अधिक बार दोहराया।

r+ मैच r एक या अधिक बार दोहराया।

r? माचिस r शून्य या एक बार।

(r) मैच r, समूहीकरण प्रदान करना।

ऑपरेटरों की बढ़ती प्राथमिकता प्रत्यावर्तन, संयोजन और एकात्मक (*, + or .) है
?)।

उदाहरण के लिए,

/^[_a-zA-Z][_a-zA-Z0-9]*$/ और
/^[-+]?([0-9]+\.?|\.[0-9])[0-9]*([eE][-+]?[0-9]+)?$/

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

किसी भी व्यंजक का उपयोग ~ या !~ ऑपरेटरों के दायीं ओर किया जा सकता है या a . को पास किया जा सकता है
बिल्ट-इन जो रेगुलर एक्सप्रेशन की अपेक्षा करता है। यदि आवश्यक हो, तो इसे स्ट्रिंग में बदल दिया जाता है, और
फिर एक नियमित अभिव्यक्ति के रूप में व्याख्या की। उदाहरण के लिए,

BEGIN { पहचानकर्ता = "[_a-zA-Z][_a-zA-Z0-9]*" }

$0 ~ "^" पहचानकर्ता

AWK पहचानकर्ता से शुरू होने वाली सभी पंक्तियों को प्रिंट करता है।

मौको खाली नियमित अभिव्यक्ति को पहचानता है, //, जो खाली स्ट्रिंग से मेल खाता है और इसलिए
आगे, पीछे और प्रत्येक वर्ण के बीच किसी भी स्ट्रिंग से मेल खाता है। उदाहरण के लिए,

इको एबीसी | मॉक {जीएसयूबी (//, "एक्स"); प्रिंट }
एक्सएक्सबीएक्ससीएक्स

4. अभिलेख और फ़ील्ड्स
अभिलेखों को एक बार में पढ़ा जाता है, और में संग्रहीत किया जाता है खेत परिवर्तनशील $0. रिकॉर्ड है
में विभाजित फ़ील्ड्स जो में संग्रहीत हैं $1, $2, ..., $एनएफ. बिल्ट-इन वेरिएबल NF सेट है
क्षेत्रों की संख्या के लिए, और NR और एफ एन आर 1 द्वारा बढ़ाए गए हैं। ऊपर के क्षेत्र $एनएफ पर सेट हैं
""।

करने के लिए असाइनमेंट $0 खेतों का कारण बनता है और NF पुनर्गणना की जानी है। करने के लिए असाइनमेंट NF या ए
क्षेत्र कारण $0 को जोड़कर पुनर्निर्माण किया जाना है $i's द्वारा अलग किया गया ओएफएस.
से अधिक इंडेक्स वाले फ़ील्ड को असाइनमेंट NF, बढ़ती है NF और कारण $0 करने के लिए हो सकता है
पुनर्निर्माण किया।

फ़ील्ड में संग्रहीत डेटा इनपुट स्ट्रिंग है, जब तक कि पूरे फ़ील्ड में संख्यात्मक रूप न हो और तब
प्रकार संख्या और स्ट्रिंग है। उदाहरण के लिए,

इको 24 24E |
मॉक '{प्रिंट($1>100, $1>"100", $2>100, $2>"100")}'
0 1 1 1

$0 और $2 स्ट्रिंग हैं और $1 संख्या और स्ट्रिंग है। पहली तुलना संख्यात्मक है, the
दूसरा स्ट्रिंग है, तीसरा स्ट्रिंग है (100 को "100" में बदल दिया गया है), और अंतिम स्ट्रिंग है।

5. एक्सप्रेशंस और ऑपरेटरों
व्यंजक वाक्य-विन्यास C के समान है। प्राथमिक व्यंजक सांख्यिक स्थिरांक हैं, string
स्थिरांक, चर, फ़ील्ड, सरणियाँ और फ़ंक्शन कॉल। एक चर के लिए पहचानकर्ता,
सरणी या फ़ंक्शन अक्षरों, अंकों और अंडरस्कोर का अनुक्रम हो सकता है, जो नहीं है
एक अंक से शुरू करें। चर घोषित नहीं किए गए हैं; वे मौजूद हैं जब पहली बार संदर्भित और हैं
करने के लिए आरंभिक रिक्त.

नए भाव निम्नलिखित ऑपरेटरों के साथ बढ़ते क्रम में बनाये जाते हैं
वरीयता

असाइनमेंट = += -= *= /= %= ^=
सशर्त ? :
तार्किक or ||
तार्किक और &&
सरणी सदस्यता in
मिलान ~!~
रिलेशनल < > <= >= == !=
कड़ी (कोई स्पष्ट ऑपरेटर नहीं)
जोड़ना ऑप्स + -
एमयूएल ऑप्स * *%
एकल + -
तार्किक नहीं !
घातांक ^
कांग्रेस और दिसम्बर ++ -- (पोस्ट और प्री दोनों)
खेत $

असाइनमेंट, सशर्त और घातांक सहयोगी दाएं से बाएं; अन्य ऑपरेटरों
बाएं से दाएं सहयोगी। किसी भी अभिव्यक्ति को कोष्ठक में रखा जा सकता है।

6. Arrays
awk एक आयामी सरणियाँ प्रदान करता है। ऐरे तत्वों को इस प्रकार व्यक्त किया जाता है सरणी[expr]. expr
आंतरिक रूप से स्ट्रिंग प्रकार में परिवर्तित किया जाता है, इसलिए, उदाहरण के लिए, A[1] और A["1"] समान हैं
तत्व और वास्तविक सूचकांक "1" है। स्ट्रिंग्स द्वारा अनुक्रमित सरणियों को सहयोगी कहा जाता है
सरणियाँ। प्रारंभ में एक सरणी खाली है; पहली बार एक्सेस किए जाने पर तत्व मौजूद होते हैं। एक अभिव्यक्ति,
expr in सरणी 1 if . का मूल्यांकन करता है सरणी[expr] मौजूद है, अन्यथा 0.

का एक रूप है एसटी कथन जो किसी सरणी के प्रत्येक अनुक्रमणिका पर लूप करता है।

एसटी ( था in सरणी ) कथन

सेट था के प्रत्येक सूचकांक के लिए सरणी और निष्पादित करता है कथन. आदेश कि था अनुप्रस्थ
के सूचकांक सरणी परिभाषित नहीं है।

बयान, हटाना सरणी[expr], कारण सरणी[expr] अस्तित्व में नहीं है। मौको एक का समर्थन करता है
विस्तार, हटाना सरणी, जो के सभी तत्वों को हटा देता है सरणी.

बहुआयामी सरणियों को अंतर्निर्मित चर का उपयोग करके संयोजन के साथ संश्लेषित किया जाता है
उप. सरणी[expr1,expr2] बराबर है सरणी[expr1 उप expr2]. ए के लिए परीक्षण
बहुआयामी तत्व एक कोष्ठक सूचकांक का उपयोग करता है, जैसे कि

अगर ((i, j) A में) प्रिंट A[i, j]

7. अंतर्निहित-चर
निम्नलिखित चर प्रोग्राम निष्पादन से पहले अंतर्निहित और आरंभिक हैं।

एआरजीसी कमांड लाइन तर्कों की संख्या।

एआरजीवी कमांड लाइन तर्कों की सरणी, 0..ARGC-1।

CONVFMT संख्याओं को स्ट्रिंग में आंतरिक रूपांतरण के लिए प्रारूप, प्रारंभ में = "%.6g"।

घेरना पर्यावरण चर द्वारा अनुक्रमित सरणी। एक पर्यावरण स्ट्रिंग, वर = मान
के रूप में संग्रहीत है घेरना[था] = मूल्य.

फ़ाइल का नाम वर्तमान इनपुट फ़ाइल का नाम।

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

FS रेगुलर एक्सप्रेशन के रूप में रिकॉर्ड को फ़ील्ड में विभाजित करता है।

NF वर्तमान रिकॉर्ड में फ़ील्ड की संख्या।

NR कुल इनपुट स्ट्रीम में वर्तमान रिकॉर्ड संख्या।

ओएफएमटी मुद्रण संख्या के लिए प्रारूप; प्रारंभ में = "%.6g"।

ओएफएस आउटपुट पर फ़ील्ड के बीच डाला गया, प्रारंभ में = " "।

ओआरएस आउटपुट पर प्रत्येक रिकॉर्ड को समाप्त करता है, प्रारंभ में = "\ n"।

लम्बाई बिल्ट-इन फ़ंक्शन के लिए अंतिम कॉल द्वारा निर्धारित लंबाई, मिलान().

RS इनपुट रिकॉर्ड विभाजक, प्रारंभ में = "\ n"।

आर START अंतिम कॉल द्वारा निर्धारित सूचकांक मिलान().

उप एकाधिक सरणी सबस्क्रिप्ट बनाने के लिए प्रयोग किया जाता है, प्रारंभ में = "\034"।

8. अन्तर्निर्मित में कार्यों
स्ट्रिंग फ़ंक्शन

जीएसयूबी (आर, एस, टी) जीएसयूबी (आर, एस)
वैश्विक प्रतिस्थापन, रेगुलर एक्सप्रेशन का हर मैच r चर में t is
स्ट्रिंग द्वारा प्रतिस्थापित किया गया s. प्रतिस्थापन की संख्या लौटा दी जाती है। अगर t is
छोड़ा गया, $0 प्रयोग किया जाता है। एक और प्रतिस्थापन स्ट्रिंग में s द्वारा प्रतिस्थापित किया जाता है
का मिलान किया गया सबस्ट्रिंग t. \& और \\ अक्षरशः & और \, क्रमशः, in . डालें
प्रतिस्थापन स्ट्रिंग।

अनुक्रमणिका(अनुसूचित जनजाति)
If t का एक विकल्प है is s, फिर वह स्थिति जहाँ t प्रारंभ वापस आ जाता है, अन्यथा
0 वापस आ गया है। का पहला पात्र s 1 की स्थिति में है।

लंबाई (s)
स्ट्रिंग की लंबाई लौटाता है s.

मिलान(एस, आर)
रेगुलर एक्सप्रेशन के पहले सबसे लंबे मिलान का सूचकांक लौटाता है r in
स्ट्रिंग s. कोई मिलान नहीं होने पर 0 लौटाता है। एक साइड इफेक्ट के रूप में, आर START पर सेट है
प्रतिलाभ की मात्रा। लम्बाई मैच की लंबाई पर सेट है या -1 अगर कोई मैच नहीं है।
यदि खाली स्ट्रिंग का मिलान किया जाता है, लम्बाई 0 पर सेट है, और 1 लौटाया जाता है यदि
मैच सामने है, और लंबाई (s) +1 वापस कर दिया जाता है यदि मैच at . है
पीछे।

विभाजित करना(एस, ए, आर) विभाजित करना(एस, ए)
तार s रेगुलर एक्सप्रेशन द्वारा क्षेत्रों में विभाजित है r और मैदान हैं
सरणी में लोड किया गया A. फ़ील्ड की संख्या लौटा दी जाती है। अनुभाग 11 देखें
अधिक विवरण के लिए नीचे। अगर r छोड़ा गया है, FS प्रयोग किया जाता है।

sprintf (प्रारूप, expr-सूची)
से निर्मित एक स्ट्रिंग देता है expr-सूची के अनुसार प्रारूप. देखना
नीचे प्रिंटफ () का विवरण।

विषय(आर, एस, टी) विषय(आर, एस)
एकल प्रतिस्थापन, अधिकतम एक प्रतिस्थापन को छोड़कर gsub() के समान।

पदार्थ (एस, आई, एन) पदार्थ (एस, आई)
स्ट्रिंग का सबस्ट्रिंग लौटाता है s, सूचकांक से शुरू i, लंबाई का n. अगर n
छोड़ा गया है, का प्रत्यय s, पे शुरुवात i वापस आ गया है

नीचा करना(s)
की एक प्रति लौटाता है s सभी अपर केस कैरेक्टर लोअर केस में कनवर्ट किए गए हैं।

टौपर (s)
की एक प्रति लौटाता है s सभी लोअर केस कैरेक्टर अपर केस में कनवर्ट किए गए हैं।

अंकगणितीय कार्य

atan2 (वाई, एक्स) आर्कटन ऑफ y/x -पीआई और पीआई के बीच।

क्योंकि (x) कोसाइन फ़ंक्शन, x रेडियंस में।

exp (x) घातांक प्रकार्य।

int (x) रिटर्न x शून्य की ओर छोटा कर दिया।

लॉग(x) प्राकृतिक।

रैंड () शून्य और एक के बीच एक यादृच्छिक संख्या देता है।

पाप (x) साइन फंक्शन, x रेडियंस में।

वर्ग (x) . का वर्गमूल लौटाता है x.

सरैंड (expr) सरंड ()
घड़ी का उपयोग करते हुए यादृच्छिक संख्या जनरेटर को सीड करें if expr छोड़ा गया है, और
पिछले बीज का मान लौटाता है। मौको यादृच्छिक संख्या बीज
स्टार्टअप पर घड़ी से जनरेटर इसलिए कॉल करने की कोई वास्तविक आवश्यकता नहीं है
सरंड ()। सरंड(expr) छद्म यादृच्छिक अनुक्रमों को दोहराने के लिए उपयोगी है।

9. निवेश और उत्पादन
दो आउटपुट स्टेटमेंट हैं, छाप और printf.

प्रिंट लिखता है $0 ओआरएस मानक आउटपुट के लिए।

छाप expr1, expr2,..., exprn
लिखते हैं expr1 ओएफएस expr2 ओएफएस ... exprn ओआरएस मानक आउटपुट के लिए। संख्यात्मक
भावों को स्ट्रिंग में बदल दिया जाता है ओएफएमटी.

printf प्रारूप, expr-सूची
प्रिंटफ सी लाइब्रेरी फ़ंक्शन लेखन को मानक आउटपुट में डुप्लिकेट करता है।
पूर्ण एएनएसआई सी प्रारूप विनिर्देशों को रूपांतरण% c के साथ पहचाना जाता है,
%d, %e, %E, %f, %g, %G, %i, %o, %s, %u, %x, %X और %%, और रूपांतरण
क्वालिफायर एच और एल।

प्रिंट या प्रिंटफ के लिए तर्क सूची वैकल्पिक रूप से कोष्ठक में संलग्न की जा सकती है। छाप
स्वरूप संख्या . का उपयोग कर ओएफएमटी या "%d" सटीक पूर्णांकों के लिए। संख्यात्मक तर्क के साथ "%c"
संबंधित 8 बिट वर्ण को प्रिंट करता है, एक स्ट्रिंग तर्क के साथ यह पहले प्रिंट करता है
स्ट्रिंग का चरित्र। प्रिंट और प्रिंटफ के आउटपुट को फाइल पर रीडायरेक्ट किया जा सकता है या
> . जोड़कर आदेश पट्टिका, >> पट्टिका या | आदेश प्रिंट स्टेटमेंट के अंत तक।
पुनर्निर्देशन खुलता है पट्टिका or आदेश केवल एक बार, बाद के पुनर्निर्देशन पहले से ही जुड़ जाते हैं
खुली धारा। रिवाज के सन्दर्भ मे, मौको फ़ाइल नाम जोड़ता है "/देव/stderr"stderr के साथ जो
प्रिंट और प्रिंटफ को stderr पर पुनर्निर्देशित करने की अनुमति देता है। मौको सहयोगी भी "-" और
"/ dev/stdout" stdin और stdout के साथ जो इन धाराओं को कार्यों में पारित करने की अनुमति देता है।

इनपुट फ़ंक्शन लाइन में आओ निम्नलिखित विविधताएं हैं।

लाइन में आओ
में पढ़ता है $0, फ़ील्ड अपडेट करता है, NF, NR और एफ एन आर.

लाइन में आओ पट्टिका
में पढ़ता है $0 से पट्टिका, फ़ील्ड अपडेट करता है और NF.

लाइन में आओ था
में अगला रिकॉर्ड पढ़ता है था, अद्यतन NR और एफ एन आर.

लाइन में आओ था < पट्टिका
का अगला रिकॉर्ड पढ़ता है पट्टिका में था.

आदेश | लाइन में आओ
से एक रिकॉर्ड पाइप आदेश में $0 और फ़ील्ड अपडेट करता है और NF.

आदेश | लाइन में आओ था
से एक रिकॉर्ड पाइप आदेश में था.

फ़ाइल के अंत में गेटलाइन 0 देता है, त्रुटि पर -1, अन्यथा 1.

पाइप के अंत में कमांड / बिन / श द्वारा निष्पादित किए जाते हैं।

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

समारोह फ़्लुश(expr) आउटपुट फ़ाइल या पाइप से संबंधित फ्लश करता है expr. फफ्लश
रिटर्न 0 अगर expr एक ओपन आउटपुट स्ट्रीम है अन्य -1। बिना तर्क के Fflush फ्लश करता है
स्टडआउट Fflush एक खाली तर्क ("") के साथ सभी खुले आउटपुट को फ्लश करता है।

समारोह प्रणाली(expr) का उपयोग करता है / बिन / श अंजाम देना expr और की निकास स्थिति लौटाता है
आदेश expr. में किए गए परिवर्तन घेरना सरणी के साथ निष्पादित आदेशों को पारित नहीं किया जाता है
प्रणाली या पाइप।

10. उपयोगकर्ता परिभाषित कार्यों
उपयोगकर्ता परिभाषित फ़ंक्शन के लिए सिंटैक्स है

समारोह नाम ( आर्ग ) { बयान }

फंक्शन बॉडी में रिटर्न स्टेटमेंट हो सकता है

वापसी ऑप्ट_एक्सपीआर

रिटर्न स्टेटमेंट की आवश्यकता नहीं है। फ़ंक्शन कॉल नेस्टेड या रिकर्सिव हो सकते हैं। कार्यों
संदर्भ द्वारा मूल्य और सरणियों द्वारा भावों को पारित किया जाता है। अतिरिक्त तर्क स्थानीय के रूप में कार्य करते हैं
चर और आरंभिक हैं रिक्त. उदाहरण के लिए, सीस्प्लिट (एस, ए) के प्रत्येक वर्ण डालता है s
सरणी में A और की लंबाई देता है s.

समारोह csplit(s, A, n, i)
{
एन = लंबाई (ओं)
for(i = 1; i <= n; i++) A[i] = सबस्ट्र (s, i, 1)
वापसी संख्या
}

पारित तर्कों और स्थानीय चर के बीच अतिरिक्त स्थान रखना पारंपरिक है।
कार्यों को परिभाषित करने से पहले संदर्भित किया जा सकता है, लेकिन फ़ंक्शन का नाम और '(' of
संयोजन के साथ भ्रम से बचने के लिए तर्कों को स्पर्श करना चाहिए।

11. विभाजन तार, अभिलेख और फ़ाइलों
Awk प्रोग्राम समान एल्गोरिथम का उपयोग स्ट्रिंग्स को स्प्लिट (), और रिकॉर्ड के साथ सरणियों में विभाजित करने के लिए करते हैं
खेतों में FS. मौको फाइलों को रिकॉर्ड में विभाजित करने के लिए अनिवार्य रूप से एक ही एल्गोरिदम का उपयोग करता है
on RS.

विभाजित करना(एक्सपीआर, ए, सितंबर) निम्नानुसार काम करता है:

(२) यदि सितम्बर छोड़ा गया है, इसे द्वारा प्रतिस्थापित किया गया है FS. सितम्बर एक अभिव्यक्ति हो सकती है या
नियमित अभिव्यक्ति। यदि यह गैर-स्ट्रिंग प्रकार की अभिव्यक्ति है, तो यह है
स्ट्रिंग में परिवर्तित।

(२) यदि सितम्बर = "" (एक एकल स्थान), तो सामने से छंटनी की जाती है और
वापस जाओ expr, तथा सितम्बर हो जाता है . मौको को परिभाषित करता है नियमित के रूप में
अभिव्यक्ति /[ \t\n]+/. अन्यथा सितम्बर एक नियमित अभिव्यक्ति के रूप में माना जाता है,
सिवाय इसके कि मेटा-वर्णों को लंबाई 1 की एक स्ट्रिंग के लिए अनदेखा किया जाता है, उदाहरण के लिए,
स्प्लिट (एक्स, ए, "*") और स्प्लिट (एक्स, ए, /\*/) समान हैं।

(२) यदि expr स्ट्रिंग नहीं है, इसे स्ट्रिंग में बदल दिया जाता है। अगर expr तो खाली है
स्ट्रिंग "", विभाजन () 0 देता है और A खाली सेट है। अन्यथा, सभी गैर-
अतिव्यापी, गैर-शून्य और सबसे लंबे मैच सितम्बर in expr, अलग expr में
फ़ील्ड जो लोड किए गए हैं A. फ़ील्ड्स को A[1], A[2], ..., में रखा गया है।
ए [एन] और स्प्लिट () एन लौटाता है, फ़ील्ड की संख्या जो कि की संख्या है
प्लस वन से मेल खाता है। डेटा में रखा गया है A जो संख्यात्मक दिखता है वह टाइप की गई संख्या है और
स्ट्रिंग.

रिकॉर्ड्स को फ़ील्ड में विभाजित करना उसी तरह काम करता है, सिवाय टुकड़ों को लोड किए जाने के $1, $2, ...,
$एनएफ. अगर $0 खाली है, NF 0 पर सेट है और सभी $i प्रति ""।

मौको फ़ाइलों को एक ही एल्गोरिथम द्वारा रिकॉर्ड में विभाजित करता है, लेकिन थोड़े अंतर के साथ
RS वास्तव में एक विभाजक के बजाय एक टर्मिनेटर है। (ओआरएस वास्तव में एक टर्मिनेटर भी है)।

जैसे, अगर FS = ":+" और $0 = "ए :: बी:", फिर NF = एक्सएनएनएक्स और $1 = "ए", $2 = "बी" और $3 =
"", लेकिन अगर "a::b:" एक इनपुट फ़ाइल की सामग्री है और RS = ":+", तो वहाँ हैं
दो रिकॉर्ड "ए" और "बी"।

RS = "" विशेष नहीं है।

If FS = "", तो मौको रिकॉर्ड को अलग-अलग पात्रों में तोड़ता है, और इसी तरह,
विभाजित करना(एस, ए,"") के अलग-अलग पात्रों को रखता है s में A.

12. बहु-रेखा अभिलेख
जबसे मौको व्याख्या RS एक नियमित अभिव्यक्ति के रूप में, बहु-पंक्ति रिकॉर्ड आसान हैं। स्थापना RS
= "\n\n+", एक या अधिक रिक्त पंक्तियों को अलग-अलग रिकॉर्ड बनाता है। अगर FS = "" (डिफ़ॉल्ट),
फिर सिंगल न्यूलाइन्स, नियमों के अनुसार ऊपर, स्पेस बनें और सिंगल न्यूलाइन्स हैं
क्षेत्र विभाजक।

उदाहरण के लिए, यदि कोई फ़ाइल "ab\nc\n\n" है, तो RS = "\n\n+" और FS = "", तो वहाँ है
तीन क्षेत्रों "ए", "बी" और "सी" के साथ एक रिकॉर्ड "ab\nc"। बदलना FS = "\ n", देता है
दो फ़ील्ड "एबी" और "सी"; बदलना FS = "", के समान एक फ़ील्ड देता है
रिकॉर्ड।

यदि आप चाहते हैं कि रिक्त स्थान या टैब वाली पंक्तियों को रिक्त माना जाए, तो सेट करें RS = "\n([ \t]*\n)+"।
अन्य awks के साथ संगतता के लिए, सेटिंग RS = "" का वही प्रभाव होता है जैसे रिक्त रेखाएं
फ़ाइलों के आगे और पीछे से छीन लिया जाता है और फिर रिकॉर्ड निर्धारित किए जाते हैं जैसे कि RS =
"\n\n+"। Posix की आवश्यकता है कि "\n" हमेशा रिकॉर्ड को अलग करता है जब RS = "" की परवाह किए बिना
के मूल्य FS. मौको इस सम्मेलन का समर्थन नहीं करता है, क्योंकि "\n" को परिभाषित करना
अनावश्यक बनाता है।

ज्यादातर समय जब आप बदलते हैं RS बहु-पंक्ति रिकॉर्ड के लिए, आप भी बदलना चाहेंगे
ओआरएस करने के लिए "\n\n" इसलिए रिकॉर्ड रिक्ति आउटपुट पर संरक्षित है।

13. कार्यक्रम निष्पादन
यह खंड प्रोग्राम निष्पादन के क्रम का वर्णन करता है। प्रथम एआरजीसी कुल पर सेट है
प्रोग्राम के निष्पादन चरण में पारित कमांड लाइन तर्कों की संख्या। एआरजीवी [0] is
AWK दुभाषिया का नाम सेट करें और एआरजीवी [1] ... एआरजीवी [एआरजीसी-1] शेष रखता है
विकल्प और प्रोग्राम स्रोत को छोड़कर कमांड लाइन तर्क। उदाहरण के लिए के साथ

मॉक-एफ प्रोग वी = 1 ए टी = हैलो बी

एआरजीसी = 5 के साथ एआरजीवी [0] = "माक", एआरजीवी [1] = "वी = 1", एआरजीवी [2] = "ए", एआरजीवी [3] = "टी = हैलो" और
एआरजीवी [4] = "बी"।

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

कमांड लाइन तर्क तीन सेटों में विभाजित होते हैं: फ़ाइल तर्क, असाइनमेंट तर्क
और खाली तार ""। एक असाइनमेंट का फॉर्म है था=स्ट्रिंग। जब ए एआरजीवी [i] जांच की जाती है
एक संभावित फ़ाइल तर्क के रूप में, यदि यह खाली है तो इसे छोड़ दिया जाता है; अगर यह एक असाइनमेंट है
तर्क, करने के लिए असाइनमेंट था होता है और i अगले तर्क पर छोड़ देता है; अन्यथा एआरजीवी [i]
इनपुट के लिए खोला गया है। यदि यह खोलने में विफल रहता है, तो निष्पादन निकास कोड 2 के साथ समाप्त हो जाता है। यदि नहीं
कमांड लाइन तर्क एक फ़ाइल तर्क है, फिर इनपुट स्टड से आता है। में गेटलाइन शुरू
कार्रवाई इनपुट खोलता है। फ़ाइल तर्क के रूप में "-" स्टड को दर्शाता है।

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

जब फ़ाइल का अंत इनपुट स्ट्रीम पर होता है, तो शेष कमांड लाइन तर्क हैं
फ़ाइल तर्क के लिए जांच की जाती है, और यदि कोई है तो इसे खोला जाता है, अन्यथा अंत पैटर्न is
मिलान माना जाता है और सभी अंत कार्रवाई निष्पादित किए जाते हैं।

उदाहरण में, असाइनमेंट v=1 के बाद होता है शुरू कार्रवाई निष्पादित कर रहे हैं, और
v में रखा गया डेटा टाइप की गई संख्या और स्ट्रिंग है। इनपुट को फ़ाइल ए से पढ़ा जाता है। अंत में
फ़ाइल ए का, टी "हैलो" स्ट्रिंग पर सेट है, और बी इनपुट के लिए खोला गया है। फ़ाइल बी के अंत में,
la अंत कार्रवाई निष्पादित किए जाते हैं।

कार्यक्रम का प्रवाह पैटर्न {कार्य} के साथ स्तर बदला जा सकता है

अगला
निकास ऑप्ट_एक्सपीआर

बयान। ए अगला बयान अगले इनपुट रिकॉर्ड को पढ़ने और पैटर्न परीक्षण का कारण बनता है
पहले के साथ पुनः आरंभ करने के लिए पैटर्न {कार्य} कार्यक्रम में जोड़ी एक निकास बयान कारण
का तत्काल निष्पादन अंत कार्रवाई या कार्यक्रम समाप्ति यदि कोई नहीं हैं या यदि
निकास में होता है अंत कार्य। NS ऑप्ट_एक्सपीआर प्रोग्राम का एग्जिट वैल्यू तब तक सेट करता है जब तक
बाद में ओवरराइड किया गया निकास या बाद की त्रुटि।

उदाहरण


1. बिल्ली का अनुकरण करें।

{प्रिंट}

2. डब्ल्यूसी का अनुकरण करें।

{ वर्ण += लंबाई($0) + 1 # \n . के लिए एक जोड़ें
शब्द += एनएफ
}

END{ प्रिंट NR, शब्द, वर्ण }

3. अद्वितीय "वास्तविक शब्दों" की संख्या गिनें।

BEGIN { FS = "[^A-Za-z]+" }

{के लिए (i = 1; मैं <= एनएफ; मैं ++) शब्द [$i] = ""}

END { शब्द हटाएं[""]
के लिए (मैं शब्द में) cnt++
प्रिंट सीएनटी
}

4. पहले क्षेत्र के आधार पर प्रत्येक रिकॉर्ड के दूसरे क्षेत्र का योग करें।

$1 ~ /क्रेडिट|लाभ/ {योग += $2}
$1 ~ /डेबिट|नुकसान/ {योग -= $2}

अंत {प्रिंट योग}

5. स्ट्रिंग के रूप में तुलना करके फ़ाइल को सॉर्ट करें

{ लाइन [एनआर] = $0 "" } # तुलना प्रकार सुनिश्चित करें
# अगर कुछ पंक्तियाँ संख्यात्मक दिखती हैं

END {आइसोर्ट (लाइन, एनआर)
for(i = 1; i <= NR; i++) प्रिंट लाइन [i]
}

#सम्मिलन प्रकार A[1..n]
फ़ंक्शन आइसोर्ट (ए, एन, आई, जे, होल्ड)
{
के लिए (मैं = 2; मैं <= एन; मैं ++)
{
होल्ड = ए [जे = आई]
जबकि (ए [जे -1]> होल्ड)
{ जे-- ; ए [जे + 1] = ए [जे]}
ए [जे] = होल्ड
}
# प्रहरी ए [0] = "" यदि आवश्यक हो तो बनाया जाएगा
}

संगतता मुद्दें


AWK भाषा की Posix 1003.2(ड्राफ्ट 11.3) परिभाषा AWK है जैसा कि AWK में वर्णित है
कुछ एक्सटेंशन के साथ बुक करें जो SystemVR4 nawk में दिखाई दिए। एक्सटेंशन हैं:

नए कार्य: टौपर () और टोलर ()।

नए चर: पर्यावरण [] और CONVFMT।

प्रिंटफ () और स्प्रिंटफ () के लिए एएनएसआई सी रूपांतरण विनिर्देश।

नए कमांड विकल्प: -v var=value, कई -f विकल्प और कार्यान्वयन विकल्प
-W के तर्क के रूप में।

Posix AWK एक समय में फाइलों को एक लाइन पर संचालित करने के लिए उन्मुख है। RS "\n" से बदला जा सकता है
एक और एकल चरित्र के लिए, लेकिन इसके लिए कोई उपयोग खोजना मुश्किल है - कोई नहीं है
एडब्ल्यूके पुस्तक में उदाहरण। रिवाज के सन्दर्भ मे, RS = "", एक या अधिक रिक्त पंक्तियों को अलग करता है
रिकॉर्ड, बहु-पंक्ति रिकॉर्ड की अनुमति देता है। कब RS = "", "\n" हमेशा एक फील्ड सेपरेटर होता है
मूल्य की परवाह किए बिना FS.

मौकोदूसरी ओर, अनुमति देता है RS एक नियमित अभिव्यक्ति होने के लिए। जब "\n" में प्रकट होता है
रिकॉर्ड, इसे अंतरिक्ष के रूप में माना जाता है, और FS हमेशा फ़ील्ड निर्धारित करता है।

एक समय में लाइन को हटाने से कुछ प्रोग्राम सरल हो सकते हैं और अक्सर सुधार हो सकता है
प्रदर्शन। उदाहरण के लिए, ऊपर से उदाहरण 3 को फिर से करना,

BEGIN { RS = "[^A-Za-z]+" }

{शब्द [$0] = ""}

END { शब्द हटाएं [ "" ]
के लिए (मैं शब्द में) cnt++
प्रिंट सीएनटी
}

प्रत्येक शब्द को रिकॉर्ड बनाकर अद्वितीय शब्दों की संख्या गिनता है। मध्यम आकार की फाइलों पर,
मौको सरलीकृत आंतरिक लूप के कारण, दो बार तेजी से निष्पादित होता है।

निम्नलिखित प्रोग्राम प्रत्येक टिप्पणी को एक सी प्रोग्राम फ़ाइल में एक ही स्थान से बदल देता है,

शुरू {
रुपये = "/\*([^*]|\*+[^/*])*\*+/"
#टिप्पणी रिकॉर्ड सेपरेटर है
ओआरएस = ""
गेटलाइन होल्ड
}

{प्रिंट होल्ड; होल्ड = $0}

अंत { प्रिंटफ "%s", होल्ड करें }

किसी स्थान के साथ अंतिम रिकॉर्ड को समाप्त करने से बचने के लिए एक रिकॉर्ड को बफ़र करना आवश्यक है।

- मौको, निम्नलिखित सभी समकक्ष हैं,

x ~ /a\+b/ x ~ "a\+b" x ~ "a\\+b"

स्ट्रिंग्स को दो बार स्कैन किया जाता है, एक बार स्ट्रिंग के रूप में और एक बार रेगुलर एक्सप्रेशन के रूप में। पर
स्ट्रिंग स्कैन, मौको AWK पुस्तक की वकालत करते हुए गैर-भागने वाले पात्रों पर भागने की उपेक्षा करता है
\c के रूप में पहचाना जाना c जो मेटा-कैरेक्टर के दोहरे भागने की आवश्यकता है
तार। पॉज़िक्स स्पष्ट रूप से उस व्यवहार को परिभाषित करने से इनकार करता है जो निष्क्रिय रूप से कार्यक्रमों को मजबूर करता है
जो अधिक पोर्टेबल लेकिन कम पठनीय, डबल का उपयोग करने के लिए विभिन्न प्रकार के awks के तहत चलना चाहिए
पलायन।

Posix AWK स्ट्रिंग्स में "/dev/std{out,err}" या \x हेक्स एस्केप सीक्वेंस को नहीं पहचानता है।
एएनएसआई सी के विपरीत, मौको वर्तमान के रूप में \x से दो के बाद आने वाले अंकों की संख्या को सीमित करता है
कार्यान्वयन केवल 8 बिट वर्णों का समर्थन करता है। बिल्ट-इन फ़्लुश पहली बार a . में दिखाई दिया
हाल ही में (1993) AT&T awk को netlib को जारी किया गया, और यह पॉज़िक्स मानक का हिस्सा नहीं है।
के साथ कुल विलोपन हटाना सरणी पॉज़िक्स मानक का हिस्सा नहीं है।

Posix स्पष्ट रूप से के व्यवहार को छोड़ देता है FS = "" अपरिभाषित, और विभाजन का उल्लेख करता है
संभावित व्याख्या के रूप में वर्णों में रिकॉर्ड करें, लेकिन वर्तमान में यह उपयोग नहीं है
कार्यान्वयन भर में पोर्टेबल।

अंत में, यहाँ है कैसे मौको AWK पुस्तक या में चर्चा नहीं किए गए असाधारण मामलों को संभालता है
पॉज़िक्स ड्राफ्ट। awks में निरंतरता मान लेना असुरक्षित है और अगले पर जाना सुरक्षित है
अनुभाग।

substr(s, i, n) बंद के चौराहे में s के वर्ण लौटाता है
अंतराल [1, लंबाई (ओं)] और आधा खुला अंतराल [i, i+n)। जब यह
चौराहा खाली है, खाली स्ट्रिंग वापस आ गई है; तो सबस्ट्र ("एबीसी", 1, 0) = ""
और सबस्ट्र ("एबीसी", -4, 6) = "ए"।

खाली स्ट्रिंग सहित प्रत्येक स्ट्रिंग, सामने की खाली स्ट्रिंग से मेल खाती है, इसलिए,
s ~ // और s ~ "", हमेशा 1 होते हैं जैसा कि मैच (एस, //) और मैच (एस, "") होता है। अंतिम दो
सेट लम्बाई 0 लिए.

इंडेक्स (एस, टी) हमेशा मैच (एस, टी 1) के समान होता है जहां टी 1 टी के समान होता है
मेटाकैरेक्टर बच गए। इसलिए मिलान के साथ संगति के लिए उस अनुक्रमणिका (ओं, "") की आवश्यकता होती है
हमेशा 1 लौटाता है। इसके अलावा, शर्त, अनुक्रमणिका (एस, टी)! = 0 अगर और केवल टी एक सबस्ट्रिंग है
s के लिए, अनुक्रमणिका ("","") = 1 की आवश्यकता होती है।

यदि गेटलाइन फ़ाइल के अंत का सामना करती है, तो गेटलाइन var, var अपरिवर्तित छोड़ देता है। इसी तरह,
में प्रवेश पर अंत कार्रवाई, $0, खेतों और NF से उनका मूल्य अपरिवर्तित है
अंतिम रिकॉर्ड।

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


फ्री सर्वर और वर्कस्टेशन

विंडोज और लाइनेक्स एप डाउनलोड करें

  • 1
    ऑल्ट-एफ
    ऑल्ट-एफ
    Alt-F एक मुफ़्त और खुला स्रोत प्रदान करता है
    DLINK के लिए वैकल्पिक फर्मवेयर
    DNS-320/320L/321/323/325/327L and
    DNR-322L। Alt-F में सांबा और NFS हैं;
    ext2/3/4 का समर्थन करता है...
    ऑल्ट-एफ डाउनलोड करें
  • 2
    USM
    USM
    Usm एक एकीकृत स्लैकवेयर पैकेज है
    प्रबंधक जो स्वचालित रूप से संभालता है
    निर्भरता संकल्प। यह एकजुट करता है
    सहित विभिन्न पैकेज रिपॉजिटरी
    सुस्त बर्तन, सुस्त, पी...
    यूएसएम डाउनलोड करें
  • 3
    Chart.js
    Chart.js
    चार्ट.जेएस एक जावास्क्रिप्ट लाइब्रेरी है जो
    डिजाइनरों और डेवलपर्स को आकर्षित करने की अनुमति देता है
    HTML5 का उपयोग करने वाले सभी प्रकार के चार्ट
    कैनवास तत्व। चार्ट जे एस एक महान प्रदान करता है
    सरणी ...
    चार्ट.जेएस डाउनलोड करें
  • 4
    iReport-JasperReports के लिए डिज़ाइनर
    iReport-JasperReports के लिए डिज़ाइनर
    नोट: iReport/Jaspersoft स्टूडियो सपोर्ट
    घोषणा: संस्करण 5.5.0 के अनुसार,
    जैस्परसॉफ्ट स्टूडियो आधिकारिक होगा
    JasperReports के लिए डिज़ाइन क्लाइंट। मैं विवरण देता हूँ
    मर्जी...
    JasperReports के लिए iReport-Designer डाउनलोड करें
  • 5
    पोस्टइंस्टॉलरF
    पोस्टइंस्टॉलरF
    PostInstallerF सभी को स्थापित करेगा
    सॉफ्टवेयर जो फेडोरा लिनक्स और अन्य
    बाद में डिफ़ॉल्ट रूप से शामिल नहीं होता है
    पहली बार फेडोरा चला रहा है। इसका
    के लिए आसान...
    पोस्ट इंस्टालर एफ डाउनलोड करें
  • 6
    स्ट्रेस
    स्ट्रेस
    स्ट्रेस प्रोजेक्ट को स्थानांतरित कर दिया गया है
    https://strace.io. strace is a
    डायग्नोस्टिक, डिबगिंग और इंस्ट्रक्शनल
    लिनक्स के लिए यूजरस्पेस ट्रैसर। इसका प्रयोग किया जाता है
    निगरानी करने के लिए...
    स्ट्रेस डाउनलोड करें
  • अधिक "

लिनक्स कमांड

Ad