/ / छँटाई hashes / arrays in awk - सरणियाँ, हैश, छँटाई, जाग

अर्क में सरसों / सरणी सॉर्ट करना - सरणी, हैश, सॉर्टिंग, अजीब

क्या जाग में निम्नलिखित में से कोई भी करने का एक आसान तरीका है?

  • डेटा द्वारा सरणी / हैश छाँटना
  • इसके द्वारा एक हैश की छँटाई कर रहा है स्ट्रिंग कुंजी

उत्तर:

जवाब के लिए 3 № 1

यहाँ किसी और की समस्या का जवाब है: http://www.computing.net/answers/unix/urgent-help-with-sorting-in-awk/4442.html

जो कुछ इस तरह माना जाता है:

gawk "BEGIN {c=1} { array[c] = sprintf ("%s %s", $2, $1); c++ }
END { asort(array); for (x=1;x<c;x++) { print array[x] } }"

ध्यान दें कि मैंने "gawk" का उपयोग किया है। यदि आप अंतर्निहित छँटाई चाहते हैं, तो gawk का उपयोग करें।

यह उदाहरण मुख्य मूल्य जोड़े के "स्पेस-सेपरेटेड" इनपुट लेता है और उन्हें दूसरे मूल्य के आधार पर सॉर्ट करता है (बेशक यह उन्हें मूल्य / कुंजी प्रारूप में प्रिंट करता है, लेकिन आप देखते हैं कि मैं वहां क्या कर रहा हूं।

आदेश में ऐसा करने के लिए कि gawk में एक सरणी, आप कुछ इसी तरह का उपयोग करते हैं।

यदि आप awk या mawk का उपयोग कर रहे हैं, तो आपको "सॉर्ट को पूरा करने के लिए मैन पेजों में उपलब्ध कई प्रकार के कार्यों में से एक का उपयोग करना होगा।

Gawk manpage से: AWK में सभी सरणियाँ साहचर्य हैं, अर्थात् स्ट्रिंग मानों द्वारा अनुक्रमित। विशेष ऑपरेटर का उपयोग यदि एक सरणी में एक इंडेक्स से मिलकर किया जाता है, तो यह देखने के लिए कि क्या एक या एक या एक बयान में इस्तेमाल किया जा सकता है विशेष मूल्य। अगर (सरणी में वैल) प्रिंट सरणी [val] यदि सरणी में कई सदस्यताएँ हैं, तो सरणी में (i, j) का उपयोग करें।