यह लेख समझाएगा कि uniq . का उपयोग कैसे करें फ़ाइलों में दोहराई गई पंक्तियों को खोजने या फ़िल्टर करने और कुछ उपयोग उदाहरण प्रदान करने के लिए Linux में कमांड।
uniq कमांड एक साधारण कमांड है जो या तो आउटपुट करता है या आपूर्ति किए गए इनपुट या फ़ाइल में दोहराई गई लाइनों को छोड़ देता है।
uniq कमांड सिंटैक्स
uniq . के लिए सिंटैक्स आदेश इस प्रकार है:
uniq OPTIONS INPUT OUTPUT
ध्यान दें कि:
- विकल्प नीचे दी गई तालिका से विकल्पों की एक सूची है
- इनपुट फ़ाइल को पढ़ने के लिए पथ होना चाहिए
- *मानक इनपुट *का भी उपयोग किया जा सकता है
- आउटपुट वह फ़ाइल होनी चाहिए जिसमें uniq . के परिणाम हों आदेश सहेजे गए हैं
- यदि आपूर्ति नहीं की जाती है, मानक आउटपुट उपयोग किया जाएगा (डिफ़ॉल्ट रूप से, यह परिणामों को कंसोल पर प्रिंट करता है)
अगर इनपुट या आउटपुट फ़ाइलें परिभाषित नहीं हैं, तो आप इनपुट और आउटपुट को uniq पर और से रीडायरेक्ट कर सकते हैं एसटीडीआईएन और एसटीडीओयूटी का उपयोग करते हुए कमांड - इसे कैसे करें, इस बारे में अधिक जानकारी के लिए इस लेख को देखें।
विकल्प
नीचे दी गई तालिका उपयोगकर्ता पुस्तिका से आमतौर पर उपयोग किए जाने वाले विकल्पों को सूचीबद्ध करती है:
-c | उपसर्ग पंक्तियों की संख्या के आधार पर |
-d | केवल डुप्लीकेट लाइनें प्रिंट करें, प्रत्येक समूह के लिए एक |
-डी | सभी डुप्लिकेट लाइनें प्रिंट करें |
-i | तुलना करते समय मतभेदों पर ध्यान न दें |
-s | पहले N वर्णों की तुलना करने से बचें |
-u | केवल अनन्य पंक्तियां प्रिंट करें |
आप uniq . के लिए पूर्ण उपयोगकर्ता पुस्तिका देख सकते हैं कमांड चलाकर:
man uniq
uniq कमांड उदाहरण
उदाहरण फ़ाइल
निम्नलिखित उदाहरण निम्नलिखित उदाहरण फ़ाइल को उनके इनपुट के रूप में उपयोग करेंगे:
movies.txt
Dirty Harry Dirty Harry Total Recall Bride of Frankenstein Total Recall Demolition Man
डिफ़ॉल्ट व्यवहार - दोहराई गई पंक्तियों को हटाना
डिफ़ॉल्ट रूप से, uniq आदेश दोहराई गई पंक्तियों को हटा देगा।
uniq movies.txt
जो आउटपुट करेगा:
Dirty Harry Total Recall Bride of Frankenstein Total Recall Demolition Man
ध्यान दें कि बार-बार आने वाली लाइनें हटा दी जाती हैं। डुप्लीकेट नहीं। केवल आसन्न, समान रेखाएं हटाई जाती हैं।
दोहराव की संख्या दिखाई जा रही है
-सी विकल्प प्रत्येक पंक्ति को जितनी बार दोहराया गया था, उसके साथ जोड़ देगा:
uniq -c movies.txt
कौन सा आउटपुट:
2 Dirty Harry 1 Total Recall 1 Bride of Frankenstein 1 Total Recall 1 Demolition Man
केवल वही पंक्तियां दिखाएं जो दोहराई नहीं जाती हैं
-u विकल्प केवल वही पंक्तियाँ दिखाएगा जो दोहराई नहीं जाती हैं:
uniq -u movies.txt
जो आउटपुट करेगा:
Total Recall Bride of Frankenstein Total Recall Demolition Man
केवल वही पंक्तियां दिखाएं जो दोहराई जाती हैं
-d विकल्प केवल दोहराई गई पंक्तियाँ दिखाएगा:
uniq -d movies.txt
जो आउटपुट करेगा:
Dirty Harry
फिर से - ध्यान दें कि दोहराई गई पंक्तियों को शामिल किया गया है या बाहर रखा गया है। डुप्लिकेट लाइनें नहीं। uniq . द्वारा केवल निकटवर्ती, समान पंक्तियों को संसाधित किया जाता है आदेश!
परिणाम सहेजना
उस फ़ाइल में परिणाम सहेजने के लिए फ़ाइल नाम को अंतिम पैरामीटर के रूप में पास करें:
uniq -d movies.txt duplicated.txt
मानक पुनर्निर्देशन का उपयोग करना
जैसा कि ऊपर बताया गया है, uniq . को इनपुट और आउटपुट फ़ाइलें देना ज़रूरी नहीं है आदेश।
मानक पुनर्निर्देशन अन्य आदेशों और अनुप्रयोगों के आउटपुट को uniq पर निर्देशित कर सकता है, जो तब अपने स्वयं के आउटपुट को किसी अन्य प्रोग्राम या फ़ाइल पर पुनर्निर्देशित कर सकता है।
cat movies.txt | uniq > output.txt
उपरोक्त उदाहरण में, उदाहरण फ़ाइल को पढ़ने के लिए कैट कमांड का उपयोग किया जाता है - और उसके आउटपुट को फिर अद्वितीय पर पाइप किया जाता है आज्ञा। इसके बाद uniq कमांड का आउटपुट > . का उपयोग करके फ़ाइल पर रीडायरेक्ट किया जाता है ऑपरेटर।
जाहिर है, यह वास्तव में इनपुट/आउटपुट फ़ाइलों को पथ प्रदान करने के लिए कोई अतिरिक्त कार्यक्षमता प्रदान नहीं करता है। फिर भी, यह इस बात का स्पष्ट उदाहरण है कि कैसे कमांड से आउटपुट को पाइप/दूसरों पर रीडायरेक्ट किया जा सकता है।