यह लेख बताएगा कि Linux में uniq कमांड का उपयोग फ़ाइलों में दोहराई गई लाइनों को खोजने या फ़िल्टर करने के लिए कैसे करें और कुछ उपयोग उदाहरण प्रदान करें।
uniq कमांड एक सरल कमांड है जो या तो आपूर्ति किए गए इनपुट या फ़ाइल में दोहराई गई लाइनों को आउटपुट करता है या छोड़ देता है।
uniq कमांड सिंटैक्स
uniq कमांड के लिए सिंटैक्स इस प्रकार है:
uniq OPTIONS INPUT OUTPUT
ध्यान दें कि:
- OPTIONS नीचे दी गई तालिका से विकल्पों की एक सूची है
- INPUT पढ़ी जाने वाली फ़ाइल का पथ होना चाहिए
- *मानक इनपुट *का भी उपयोग किया जा सकता है
- OUTPUT वह फ़ाइल होनी चाहिए जिसमें uniq कमांड के परिणाम सहेजे गए हैं
- यदि प्रदान नहीं किया गया है, तो मानक आउटपुट का उपयोग किया जाएगा (डिफ़ॉल्ट रूप से, यह परिणामों को कंसोल पर प्रिंट करता है)
यदि इनपुट या आउटपुट फ़ाइल परिभाषित नहीं हैं, तो आप uniq कमांड से इनपुट और आउटपुट को STDIN और STDOUT का उपयोग करके रीडायरेक्ट कर सकते हैं – ऐसा कैसे करें, इसके लिए इस लेख को देखें।
विकल्प
नीचे दी गई तालिका उपयोगकर्ता मैनुअल से आमतौर पर उपयोग किए जाने वाले विकल्पों को सूचीबद्ध करती है:
| -c | घटनाओं की संख्या से लाइनों को प्रीफिक्स करें |
| -d | केवल डुप्लिकेट लाइनों को प्रिंट करें, प्रत्येक समूह के लिए एक |
| -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
ध्यान दें कि दोहराई गई लाइनें हटा दी जाती हैं। डुप्लिकेट नहीं। केवल आसन्न, समान लाइनें हटाई जाती हैं।
दोहराव की संख्या दिखाना
-c विकल्प प्रत्येक पंक्ति को जितनी बार दोहराया गया था, उससे प्रीफिक्स करेगा:
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
उपरोक्त उदाहरण में, cat कमांड का उपयोग उदाहरण फ़ाइल पढ़ने के लिए किया जाता है – और उसका आउटपुट तब unique कमांड पर पाइप किया जाता है। uniq कमांड तब अपने आउटपुट को > ऑपरेटर का उपयोग करके फ़ाइल पर रीडायरेक्ट करता है।
जाहिर है, यह केवल इनपुट/आउटपुट फ़ाइलों के पथ प्रदान करने की तुलना में कोई अतिरिक्त कार्यक्षमता प्रदान नहीं करता है। फिर भी, यह इस बात का एक स्पष्ट उदाहरण है कि कमांड के आउटपुट को दूसरों पर पाइप/रीडायरेक्ट कैसे किया जा सकता है।