2010-07-29 33 views
5

Tôi có hai danh sách địa chỉ IP. Tôi cần phải hợp nhất chúng thành ba tập tin, giao lộ, những người từ list1 chỉ và những người từ list2 chỉ.Sự khác biệt/hợp nhất hai tệp

Tôi có thể làm điều này với awk/diff hoặc bất kỳ lệnh unix đơn giản nào khác không? Làm sao?

Các tập tin giống như thế này:

111.222.333.444 
111.222.333.445 
111.222.333.448 

Cảm ơn bạn!

Trả lời

3

Nếu các tập tin được sắp xếp sau đó

join list1 list2 

chí đầu ra ngã tư.

join -v 1 list1 list2 

sẽ xuất những tệp chỉ có trong danh sách1.

join -v 2 list1 list2 

sẽ xuất những tệp nằm trong danh sách2.

2

Sắp xếp thứ nhất, sử dụng sắp xếp và sau đó bạn có thể sử dụng comm.

Intersection: comm -12 <file1> <file2>

Danh sách 1 Chỉ: comm -23 <file1> <file2>

Danh sách 2 Chỉ comm -13 <file1> <file2>

+0

Hoặc chỉ cần lập kế hoạch "comm ", cung cấp ba cột, chỉ với "tệp 1", "tệp 2" và "chung" (miễn là tệp đầu vào được sắp xếp). – Vatine

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