Linux में फ़ाइल में अनोखी लाइनों की गणना एक सामान्य कार्य है। यह लेख दो कुशल कमांड-लाइन विधियों को प्रस्तुत करता है: sort
और uniq
का उपयोग करना, और awk
का उपयोग करना।
विषय सूची
sort
और uniq
के साथ अनोखी लाइनों की गणना
यह विधि सरल तरीके से sort
और uniq
की शक्ति को जोड़ती है। sort
लाइनों को वर्णानुक्रम में व्यवस्थित करता है, जो uniq
के लिए एक पूर्वापेक्षा है, जो केवल क्रमागत समान लाइनों की गणना करता है। uniq
में -c
विकल्प प्रत्येक पंक्ति में एक गणना उपसर्ग जोड़ता है।
file.txt
में अनोखी लाइनों की गणना करने के लिए:
sort file.txt | uniq -c
यह प्रत्येक अनोखी पंक्ति को उसकी गणना के साथ प्रदर्शित करता है। अनोखी लाइनों की कुल संख्या प्राप्त करने के लिए, आउटपुट को wc -l
में पाइप करें:
sort file.txt | uniq -c | wc -l
उदाहरण:
यदि file.txt
में है:
apple
banana
apple
orange
banana
apple
sort file.txt | uniq -c
आउटपुट करता है:
3 apple
2 banana
1 orange
और sort file.txt | uniq -c | wc -l
आउटपुट करता है:
3
awk
के साथ अनोखी लाइनों की गणना
awk
एक लचीला समाधान प्रदान करता है, जो अधिक जटिल परिदृश्यों के लिए विशेष रूप से उपयोगी है। यह विधि अनोखी लाइनों और उनकी गणनाओं को ट्रैक करने के लिए एक एसोसिएटिव ऐरे का उपयोग करती है।
अनोखी लाइनों की गणना करने और उन्हें उनकी गणना के साथ प्रदर्शित करने के लिए:
awk '{count[$0]++} END {for (line in count) print count[line], line}' file.txt
यह स्क्रिप्ट count
ऐरे में प्रत्येक पंक्ति के लिए गणना को बढ़ाता है, पंक्ति को कुंजी के रूप में उपयोग करता है। END
ब्लॉक ऐरे के माध्यम से पुनरावृति करता है, प्रत्येक पंक्ति की गणना और पंक्ति स्वयं को प्रिंट करता है।
केवल अनोखी लाइनों की कुल गणना प्राप्त करने के लिए:
awk '{count[$0]++} END {print length(count)}' file.txt
यह अनोखी लाइनों की संख्या (ऐरे का आकार) को सीधे आउटपुट करने के लिए length(count)
का उपयोग करता है।
उदाहरण:
उसी file.txt
का उपयोग करते हुए, पहला awk
कमांड sort | uniq -c
विधि के समान आउटपुट उत्पन्न करता है। दूसरा awk
कमांड 3
आउटपुट करता है, जो तीन अनोखी लाइनों को इंगित करता है।
अपनी आवश्यकताओं के अनुसार सबसे उपयुक्त विधि चुनें। बुनियादी कार्यों के लिए sort
और uniq
सरल हैं; जटिल परिदृश्यों के लिए awk
अधिक लचीलापन प्रदान करता है।