Làm thế nào để hợp nhất hai tập tin trong hàng tương ứng?


9

Bây giờ, tôi có hai tệp:

aaaa.txt:

a=0;
b=1;
c=2;

bbbb.txt:

d=3
e=4
f=5

Tôi muốn hợp nhất aaaa.txtbbbb.txtđể cccc.txt.

cccc.txt như sau:

a=0;d=3
b=1;e=4
c=2;f=5

Vì vậy, tôi có thể làm gì cho điều này?

Câu trả lời:


13

Bạn có thể sử dụng dán cho việc này:

paste -d '\0' aaaa.txt bbbb.txt > cccc.txt

Từ câu hỏi của bạn, có vẻ như tập tin đầu tiên chứa ;ở cuối. Nếu không, bạn có thể sử dụng nó làm dấu phân cách bằng cách sử dụng -d ';'thay thế.

Lưu ý rằng trái với những gì người ta có thể nghĩ, với -d '\0', nó không dán một ký tự NUL là dấu phân cách, mà với một dấu phân cách trống. Đó là cách tiêu chuẩn để xác định một dấu phân cách trống. Một số pastetriển khai như GNU pastecho phép paste -d ''điều đó, nhưng nó không phải là tiêu chuẩn hay di động (nhiều triển khai khác sẽ báo cáo lỗi về dấu phân cách bị thiếu nếu bạn sử dụng paste -d '').


@ Chris Down - Cảm ơn bạn rất nhiều, nó hoạt động. Bằng cách này, một câu hỏi khác: awk '{sed' s /.*,/ 999 / g '}' cccc.txt tại sao nó trả lại awk: {sed s /.* , / 999 / g} awk: ^ lỗi cú pháp. Có gì sai với nó?
binghenzq

Tôi không hoàn toàn chắc chắn những gì bạn đang cố gắng làm, nhưng bạn không thể chuyển sed sang awk như thế ...
Chris Down

@ Chris Down - Thans, tôi hiểu rồi.
binghenzq

Vui lòng đặt câu hỏi riêng biệt, tốt, câu hỏi riêng biệt. Nó làm cho chúng hữu ích cho người dùng sau này (có thể tìm thấy!).
vonbrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.