2012-07-04 12 views
15

मैं संक्षिप्त आउटपुट के लिए -q विकल्प का उपयोग करके, विभिन्न फ़ाइलों के लिए दो निर्देशिकाओं की तुलना करने के लिए diff का उपयोग करना चाहता हूं। हालांकि, आउटपुट कई फाइलों के साथ अव्यवस्थित है जो केवल एक निर्देशिका में मौजूद हैं, लेकिन दूसरे नहीं। क्या मैं केवल diff (या किसी अन्य टूल का उपयोग कर सकता हूं) को केवल उन फ़ाइलों को दिखाने के लिए मजबूर कर सकता हूं जो दोनों निर्देशिकाओं में भिन्न हैं और मौजूद हैं?गैर-मौजूदा फ़ाइलों को अनदेखा करते समय diff का उपयोग करके दो निर्देशिकाओं की तुलना कैसे करें?

वर्तमान आदेश का उपयोग मैं

diff -q <dir1> <dir2> 

है कोई भी विचार की सराहना की कर रहे हैं।

उत्तर

15

यह

Only in dir1/blah: blah 

सही तरह लाइनों के एक झुंड प्रिंट? तो बस उन्हें grep के साथ फेंक दें।

LC_ALL=C diff ... | grep -v '^Only in' 

LC_ALL=C सुनिश्चित करें कि मानक संदेश "केवल में", प्रिंट किया जाएगा नहीं किसी भी अनुवाद करना है।

-3

सबसे आसान तरीका मैंने पाया उपयोग करने के लिए है:

diff -N -q <dir1> <dir2> 
+0

मुझे लगता है कि कोशिश की, लेकिन '-N' विकल्प सिर्फ बदलता है" केवल में "" फ़ाइलें अलग करने के लिए "। यह वास्तव में "केवल इन" लाइनों को खत्म नहीं करता है। – wisbucky

संबंधित मुद्दे