2011-06-20 1 views
6

Tôi có hai tệp (được phân cách bằng tab) một tệp có 4 cột và n số hàng và tệp thứ hai có 2 cột và n số hàng.hợp nhất hai tệp

cột 4 của tệp đầu tiên giống hệt với cột 2 của tệp thứ hai.

Tôi muốn có một tập tin thứ ba, trong đó có bốn cột đầu tiên từ tệp 1 và cột 5 từ tập tin 2.

Bất kỳ gợi ý cho một dòng bash script.

+0

thêm đầu vào cho câu hỏi cũng như đầu ra mong đợi –

Trả lời

9

thử với join

join FILE1 FILE2 -1 4 -2 2 -t"tab"

để thể hiện một tham gia giữa các tập tin FILE1 và FILE2 dựa trên các lĩnh vực 4 (-1 4) của FILE1 và trường thứ 2 (-2 2) của FILE2

+0

Tôi muốn nhận chúng dưới dạng phân cách bằng tab (và tôi không nhận chúng dưới dạng phân tách bằng tab) .... bất kỳ đề xuất nào .. – Angelo

+0

@Angelo: chỉ định dấu phân cách trường với tùy chọn 't 'tab" '(như được hiển thị bằng một ví dụ ở đây: http://compute.cnr.berkeley.edu/cgi-bin/man-cgi?join) –

3

Có xem xét lệnh join, xem hướng dẫn here

1

Đối với người lập bảng thử

join -t \t files1 …