यह एक-लाइनर पाठ इनपुट से पूर्व-छँटाई के बिना डुप्लिकेट लाइनों को हटा देता है।
उदाहरण के लिए:
$ cat >f
q
w
e
w
r
$ awk '!a[$0]++' <f
q
w
e
r
$
मूल कोड जो मैंने इंटर्नेट पर पढ़ा है:
awk '!_[$0]++'
यह मेरे लिए और भी अधिक हैरान करने वाला था क्योंकि मैंने _
पर्ल में जैसे कि जाग में एक विशेष अर्थ लिया था, लेकिन यह एक सरणी का सिर्फ एक नाम था।
अब, मैं एक-लाइनर के पीछे के तर्क को समझता हूं: प्रत्येक इनपुट लाइन का उपयोग हैश एरे में एक कुंजी के रूप में किया जाता है, इस प्रकार, पूरा होने पर, हैश में आगमन के क्रम में अद्वितीय लाइनें होती हैं।
मैं क्या सीखना चाहूंगा कि इस धारणा की व्याख्या कैसे होती है। जैसे कि बैंग साइन ( !
) का मतलब क्या है और इस कोड के अन्य तत्व स्निपेट हैं।
यह कैसे काम करता है?