Tôi có một tập tin với hai cột nhưLàm thế nào để thêm một cột từ một tập tin vào một tập tin
1 1
2 3
3 4
và một tập tin với một cột như
6
7
9
Tôi muốn thêm thứ hai tập tin đầu tiên. Sản lượng nên là:
1 1 6
2 3 7
3 4 9
Tôi có một tập tin với hai cột nhưLàm thế nào để thêm một cột từ một tập tin vào một tập tin
1 1
2 3
3 4
và một tập tin với một cột như
6
7
9
Tôi muốn thêm thứ hai tập tin đầu tiên. Sản lượng nên là:
1 1 6
2 3 7
3 4 9
$ pr -mts' ' file1 file2
1 1 6
2 3 7
3 4 9
$ paste -d' ' file1 file2
1 1 6
2 3 7
3 4 9
awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2
Lưu ý: Sẽ làm việc với các tập tin của cùng chiều dài. Nếu độ dài tệp 'khác nhau, hãy đi với giải pháp sudo_O's.
Just for the heck của nó, đây là một lệnh awk
mà tôi nghĩ nên mô phỏng paste
. Đơn thuần cho vui mặc dù, nếu tôi là bạn tôi sẽ vẫn đi với giải pháp sudo_O's (hoặc có thể là không!)
awk 'NR==FNR{a[++y]=$0;next}{b[++x]=$0}
END{z=x>y?x:y;while(++i<=z){print a[i],b[i]}}' file1 file2
Một giải pháp thuần túy bash có thể là:
exec 3<twofile
while read x; do read -u 3 y; echo $x $y; done <onefile
Infiles:
cat >onefile <<XXX
1 1
2 3
3 4
XXX
cat >twofile <<XXX
6
7
9
XXX
Đầu ra:
1 1 6
2 3 7
3 4 9
Cơ bản 'dán' mà không có tham số' -d' sẽ hoạt động, tôi đoán vậy. – fedorqui
@fedorqui dấu phân cách mặc định với 'dán' là một tab. –
Aaaah tôi hiểu. +1 cho điều này! – fedorqui