खोज…


आधारभूत बातें

एक नया सरणी बनाना थोड़ा भ्रामक है, क्योंकि awk में किसी सरणी के लिए कोई वास्तविक पहचानकर्ता नहीं है। इसलिए, एक सरणी वास्तव में हमारे AWK कोड के साथ आरंभ नहीं की जा सकती है।

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

AWK में एक सरणी बनाना वास्तव में आसान है, क्योंकि आप एक चर नाम, एक उचित कुंजी लेते हैं और इसे एक चर में असाइन करते हैं। इसका मतलब है कि जब निम्नलिखित कोड निष्पादित किया जाता है, तो हमने पहले से ही एक सरणी बनाई है जिसे myArray कहा जाता है:

BEGIN {
    myArray["key"] = "value"
}

हम केवल शुरुआत में सरणियाँ बनाने के लिए बाध्य नहीं हैं। हम कहते हैं कि हमारे पास निम्नलिखित इनपुट स्ट्रीम है:

A b c
D e f
G h i

और इसके साथ निम्नलिखित कोड निष्पादित करें:

{
    myOtherArray[$1] = $2 "-" $3
}
# The array will look like this:
# myOtherArray["A"] = "b-c"
# myOtherArray["D"] = "e-f"
# myOtherArray["G"] = "h-i"

जब कोई सरणी कुंजी मान युग्मों से भर जाती है, तो कोई मान केवल कुंजी के साथ पुनः प्राप्त कर सकता है। इसका मतलब यह है कि अगर हम myOtherArray में कुंजी "A" उपयोग करते हैं तो हमें "bc" मिलता है।

END {
    print(myOtherArray["A"])
}

हमारे पास प्रत्येक मूल्य प्राप्त करने के लिए प्रत्येक कुंजी के माध्यम से लूप करने का विकल्प भी है। किसी सरणी के प्रत्येक कुंजी के माध्यम से लूपिंग करना एक साधारण बात है, हालांकि यह पतन पर है: यह अनसोल्ड है। निम्नलिखित लूप एक फॉर-लूप की तरह है, जो कुंजी को पुनः प्राप्त करता है:

END {
    for (key in myOtherArray) {
        print "myOtherArray[\"" key "\"] = " myOtherArray[key] 
    }
}
# Outputs (literal strings):
myOtherArray["A"] = "b-c"
myOtherArray["D"] = "e-f"
myOtherArray["G"] = "h-i"


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow