Tôi có 20 tệp được phân tách bằng tab với cùng số lượng hàng. Tôi muốn chọn mỗi cột thứ 4 của mỗi tệp, dán cùng một tệp mới. Cuối cùng, tệp mới sẽ có 20 cột với mỗi cột đến từ 20 tệp khác nhau.
Làm thế nào tôi có thể làm điều này với (các) lệnh Unix / Linux?
Đầu vào, 20 định dạng tương tự, tôi muốn cột thứ 4 được ký hiệu ở đây là A1 cho tệp 1:
chr1 1734966 1735009 A1 0 0 0 0 0 1 0
chr1 2074087 2083457 A1 0 1 0 0 0 0 0
chr1 2788495 2788535 A1 0 0 0 0 0 0 0
chr1 2821745 2822495 A1 0 0 0 0 0 1 0
chr1 2821939 2822679 A1 1 0 0 0 0 0 0
...
Tệp đầu ra, với 20 cột, mỗi cột đến từ một trong số 4 cột của 20 tệp:
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
A1 A2 A3 ... A20
...
cắt là lệnh lấy colomun từ tập tin. và dán là một lệnh khác dán colomns theo chiều ngang. kiểm tra: cắt người, dán người đàn ông
—
Vineeth Chowdhary
Tôi đã thay đổi câu hỏi của bạn để làm cho nó trực tiếp hơn, vì những người khác (và có thể bạn) có thể muốn biết cách thực hiện những gì bạn đang hỏi, không chỉ khi mọi người tồn tại có khả năng giải quyết vấn đề như vậy.
—
Anthon
Cảm ơn các ý kiến. Tôi đã chỉnh sửa câu hỏi của tôi. Hy vọng là rõ ràng biết.
—
Jun Cheng
@JunCheng
—
Anthon
paste <(cut -f 4 1.txt) <(cut -f 4 2.txt) .... <(cut -f 4 20.txt)
. Điều đó hoạt động vì cut
theo mặc định cắt trên các trường được phân cách bằng TAB. Nếu câu hỏi được mở lại, tôi cũng sẽ đăng nó như một câu trả lời.