【发布时间】:2012-12-12 06:22:30
【问题描述】:
输入文件1:
1
5
6
输入文件2:
4.5
6.7
9.9
输出:
1 4.5
5 6.7
6 9.9
我尝试了join,但它在这里不起作用,因为没有公共字段。有人对此有想法吗?
【问题讨论】:
输入文件1:
1
5
6
输入文件2:
4.5
6.7
9.9
输出:
1 4.5
5 6.7
6 9.9
我尝试了join,但它在这里不起作用,因为没有公共字段。有人对此有想法吗?
【问题讨论】:
根据以下记录,我认为您正在寻找 paste 命令而不是 join:
pax> cat file1
1
5
6
pax> cat file2
4.5
6.7
9.9
pax> paste file1 file2
1 4.5
5 6.7
6 9.9
请咨询您的友好社区man 页面(或info 页面)了解更多详细信息,例如使用-d 选择TAB 以外的分隔符,或使用-s 处理文件顺序而不是并行。
pax> paste -d= file1 file2
1=4.5
5=6.7
6=9.9
pax> paste -d, -s file1 file2
1,5,6
4.5,6.7,9.9
【讨论】:
awk 'FNR==NR{a[NR]=$1;next}{print a[FNR],$0}' file2 file1
测试如下:
> cat file2
a
b
c
> cat file1
1
100
90
> awk 'FNR==NR{a[NR]=$1;next}{print a[FNR],$0}' file2 file1
a 1
b 100
c 90
【讨论】: