दो फ़ाइलों की तुलना करने के comm(1)
आदेश का उपयोग करें। उन्हें दोनों को सॉर्ट करने की आवश्यकता है, जो आप बड़े होते हैं, यदि आप बड़े होते हैं, या आप इसे प्रक्रिया प्रतिस्थापन के साथ इनलाइन कर सकते हैं।
comm
झंडे -1
, -2
और -3
यह दर्शाता है जो फ़ाइल से लाइनों (1 दायर करने के लिए अद्वितीय, 2 दायर करने के लिए अद्वितीय या दोनों के लिए आम) को दबाने के लिए का एक संयोजन ले सकते हैं।
केवल पुराने फ़ाइल की पंक्तियों को प्राप्त करने के लिए:
comm -13 <(sort /tmp/oldList) <(sort /tmp/newList)
आप एक while read
पाश प्रत्येक पंक्ति को संसाधित करने में फ़ीड कर सकते हैं कि:
comm -23 <(sort /tmp/oldList) <(sort /tmp/newList)
केवल नए फ़ाइल की पंक्तियों को प्राप्त करने के लिए :
while read old ; do
...do stuff with $old
done < <(comm -23 <(sort /tmp/oldList) <(sort /tmp/newList))
और इसी तरह नई लाइनों के लिए।
उसी प्रश्न को 4 दिन पहले पूछा गया था http://stackoverflow.com/questions/11099894/comparing-2-unsorted-lists-in-linux-listing-the-unique-in-the-second-file/11101143 # 11101143 –