जवाबों:
मैं यह समझ गया; में से एक uniq
के विकल्प है -c
"घटनाओं की संख्या से उपसर्ग लाइनों" के लिए,:
$ uniq -c
sort | uniq
A \ A \ A \ B \ A \ CC
, तो बस का आउटपुट uniq -c
दिखाएगा A 3
और बाद में दिखाएगा A 1
। पहले छंटनी, गारंटी देगी कि सभी समान रेखाओं को एक साथ समूहीकृत किया जाता है
मैं बस इसी तरह की समस्या के साथ यहां आया था। इस से, मैं एक और अधिक उन्नत कमांड को एक साथ रखने में कामयाब रहा, जो मुझे आशा है कि दूसरों के लिए उपयोगी है।
जैसा कि स्टीवन डी ने कहा था कि ऊपर की टिप्पणियों में uniq
केवल निकटवर्ती दोहराने वाली रेखाएं होती हैं, इसलिए आपको पहले लाइनों को क्रमबद्ध करना होगा। उसके बाद हम अद्वितीय रेखाएँ खोजते हैं फिर क्रमबद्ध करते हैं ताकि सबसे अधिक होने वाली रेखाएँ शीर्ष पर हों।
sort file.txt | uniq -c | sort -nr > output.txt
आउटपुट को फ़ाइल में रीडायरेक्ट किया जाता है output.txt
। यदि आप केवल कमांड लाइन पर परिणाम देखना चाहते हैं, तो पुनर्निर्देशन को हटा दें और अंतिम कमांड को बदल दें sort -n
ताकि सबसे आम लाइन नीचे हो, यानी निश्चित रूप से स्क्रीन पर।
cat file.txt | sort
बस के साथ बदल सकते हैं sort file.txt
। :)
cat
कुछ और दिलचस्प चीजों से प्रतिस्थापित नहीं कर सकते । चूंकि, आप जानते हैं, कोई भी नहीं है cat
।
< file.txt sort | uniq -c
। यह संपादित करना आसान है, और फिर भी अनावश्यक से बचा जाता है cat
।
uniq -c filename.txt | sed 's/[^0-9]*\\([0-9]\+\\) \\(.*\\)/\2 \1/'