2012-07-04 21 views
15

Tôi muốn sử dụng diff để so sánh hai thư mục cho các tệp khác nhau, sử dụng tùy chọn -q cho đầu ra ngắn. Tuy nhiên, đầu ra bị lộn xộn với rất nhiều tệp chỉ tồn tại trong một thư mục, nhưng không tồn tại trong một thư mục khác. Tôi có thể buộc diff (hoặc sử dụng một công cụ khác) để chỉ hiển thị các tệp khác và tồn tại trong cả hai thư mục không?Làm thế nào để so sánh hai thư mục bằng cách sử dụng khác nhau trong khi bỏ qua các tập tin không tồn tại?

Lệnh hiện tại tôi sử dụng là

diff -q <dir1> <dir2> 

Bất kỳ ý tưởng được đánh giá cao.

Trả lời

15

Nó in một loạt các dòng như

Only in dir1/blah: blah 

phải không? Vì vậy, chỉ cần ném chúng đi với grep.

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

Các LC_ALL=C là để đảm bảo rằng các tiêu chuẩn "Chỉ trong" Thông điệp sẽ được in, không phải bất kỳ dịch.

-3

Cách dễ nhất tôi thấy là sử dụng:

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

Tôi cố gắng đó, nhưng 'tùy chọn -N' chỉ thay đổi "Chỉ trong" thành "tập tin khác nhau". Nó không thực sự loại bỏ các dòng "Chỉ trong". – wisbucky

Các vấn đề liên quan