नोटपैड ++ दो फाइलों की तुलना करें और निकालें


13

कहते हैं कि मेरे पास दो फाइलें हैं। file1.txt और file2.txt

दोनों फाइलों में जूता ब्रांड नाम (1000+ नाम) की सूची शामिल है, जैसे:

brand1 brand2 brand3 ब्रांड ...

अब - मैं फाइल 1 से फाइल 2 की तुलना करना चाहता हूं, सभी रीचार्जिंग एंट्रीज को डिलीट कर दूंगा और मुझे फाइल 1 में केवल व्हाट्सएप दिखाएगा जो कि फाइल 2 में नहीं है और इसके विपरीत।

दूसरे शब्दों में लक्ष्य यह देखना है कि क्या विपरीत फाइल में नहीं है क्योंकि इन प्रविष्टियों को मैन्युअल रूप से दो अलग-अलग श्रेणियों के लिए एक उत्पाद बैकऑफ़िस में टाइप किया जा रहा है ताकि वे अंत में समान हों / मेल खाएं।


2
IMO यह एक्सेल में पूरा करने के लिए बहुत आसान होगा यदि आप इसमें अपने सभी डेटा को कॉपी कर सकते हैं या TXT को CSV के रूप में सहेज सकते हैं। यह आसानी से छांट सकता है, डुप्लिकेट को हटा सकता है और मुझे यकीन है कि स्तंभ तुलना या तो पूरा करना मुश्किल नहीं होगा।
करण

निम्नलिखित लिंक उपयोगी हो सकते हैं: superuser.com/a/290445
akjain

क्या एक अलग उपकरण उपयुक्त होगा? आप इसे आसानी से अजगर की कुछ पंक्तियों में कर सकते हैं, उदाहरण के लिए (प्रत्येक फ़ाइल से प्रत्येक ब्रांड पढ़ें और एक सेट में सहेजें, फिर सेट को प्रिंट करें)
बाल्ड्रिक

जवाबों:


8

क्या नोटपैड ++ का प्लगइन "तुलना" करेगा?

आप इसे Notepad ++ plugins => Plugin Manager => 1.5.6 के मेनू से इंस्टॉल कर सकते हैं

यहाँ आधिकारिक वर्णन है: 2 फाइलों (अगल-बगल) के बीच अंतर दिखाने के लिए एक बहुत ही उपयोगी अंतर प्लगइन। लेखक: Ty Landercasper, जिसे अब जीन-सेबेस्टियन लेरॉय द्वारा बनाए रखा और अपडेट किया गया है: http://sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download


2
दुर्भाग्य से, मुझे नहीं लगता कि यह करता है। तुलना प्लगइन केवल दो फ़ाइलों के बीच के अंतर को उजागर करता है, लेकिन इसके परिणामों के आधार पर चयन या संपादन करने के लिए कोई उपकरण नहीं देता है। निश्चित रूप से उपयोगी होते हुए भी, मुझे डर है कि यह कार्य अभी भी एक हजार से अधिक ब्रांड नामों के लिए थकाऊ है।
थॉमस

3

एक पुराना सवाल, लेकिन ...

  1. WinMerge में फाइलों की तुलना करें
  2. उपकरण -> उत्पन्न पैच (इसे सहेजें)
  3. पैच में दोनों से परिवर्तन हैं, लेकिन अतिरिक्त मार्कअप भी है। नोटपैड ++ में, निम्नलिखित की जगह करें:

        Search Mode:  Regular Expression
        Find What:    ^[0-9-].*$
        Replace With: <blank>
        Replace All
    

        Search Mode:  Regular Expression
        Find What:    (<|>)
        Replace With: <blank>
        Replace All
    
  4. नोटपैड ++ में TextFX प्लगइन का उपयोग करें या तो एक उपकरण करें-> केस-असंवेदनशील सॉर्ट (आउटपुट UNIQUE विकल्प चयनित), या संपादन-> रिक्त लाइनें हटाएं

बिट मूंग, लेकिन मुझे अभी तक एक उपकरण नहीं मिला है जो एक क्लिक में ऐसा करेगा।


1

करने के लिए घटाना नोटपैड में दो फ़ाइलों ++ (file1 - करें 2) यदि आप इस प्रक्रिया का पालन कर सकते हैं:

  1. ----------------------------File1 पर पाद के रूप में जोड़ें (कम से कम 10 डैश जोड़ें)। यह मार्कर लाइन है जो फ़ाइल 2 से फ़ाइल 1 सामग्री को अलग करती है।
  2. फिर फ़ाइल 2 के अंत तक फ़ाइल 2 की सामग्री को कॉपी करें (मार्कर के बाद)
  3. Control + H
  4. खोज: (?m)^\b(.*)\R(?=[\s\S]+-{10,}$[\s\S]+^\1\R)
  5. द्वारा हटाया गया: (leave empty)
  6. Regular expressionरेडियो बटन का चयन करें
  7. Replace All
  8. अंत में पाद और फ़ाइल 2 सामग्री को हटा दें

आप मार्कर को संशोधित कर सकते हैं यदि यह संभव है कि फ़ाइल 1 / फ़ाइल 2 में मार्कर के बराबर लाइनें हो सकती हैं। उस स्थिति में आपको नियमित अभिव्यक्ति को अपनाना होगा।

वैसे, आप सभी स्टेप्स करने के लिए एक मैक्रो रिकॉर्ड कर सकते हैं (एकल बटन प्रेस के साथ मार्कर, फाइल 2 पर स्विच करें, कंटेंट को फाइल 1 पर कॉपी करें, रेगेक्स लागू करें, और विकल्प के बाद डेटा को साफ भी करें)।


0

यदि यूनिक्स आपके लिए उपलब्ध है, तो आप साधारण कमांड के इन सरल संयोजनों को आज़मा सकते हैं; tr, सॉर्ट, और कॉम।

सबसे पहले, फ़ाइल को क्षैतिज रूप से अलग से लंबवत रूप से अलग करने के लिए परिवर्तित करें:

tr '[:blank:]' '\n' < file1.txt > /tmp/file1.vertical
tr '[:blank:]' '\n' < file2.txt > /tmp/file2.vertical

फिर फ़ाइलों को क्रमबद्ध करें:

sort /tmp/file1.vertical > /tmp/file1.sorted
sort /tmp/file2.vertical > /tmp/file2.sorted

अब आप देख सकते हैं कि फाइल 1 में ऐसा क्या है जो फाइल 2 में नहीं है

comm -23 /tmp/file1.sorted /tmp/file2.sorted

या देखें कि file1 में ऐसा क्या है जो file1 में नहीं है

comm -13 /tmp/file1.sorted /tmp/file2.sorted

यदि आप उसी क्षैतिज प्रारूप में आउटपुट चाहते हैं जो आपने शुरू किया था, तो आप यह कर सकते हैं:

comm -23 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '
comm -13 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '

जब आप कर लें, तो आप अपने द्वारा बनाई गई अस्थायी फ़ाइलों को हटा सकते हैं:

rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.