如何将文件中的列添加到另一个文件

时间:2013-06-13 19:20:22

标签: bash awk

我有一个包含两列的文件

1 1
2 3
3 4

和一列为

的文件
6
7
9

我想在第一个文件中添加第二个文件。输出应为:

1 1 6
2 3 7
3 4 9

3 个答案:

答案 0 :(得分:36)

$ 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

答案 1 :(得分:8)

awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2

注意:将使用相同长度的文件。如果文件长度不同,请使用sudo_O's解决方案。


只是为了它,这是一个awk命令,我认为应该模拟paste。纯粹是为了好玩,如果我是你,我仍然会使用sudo_O's解决方案(或者可能不是!)

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

答案 2 :(得分:1)

解决方案可以是:

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

输出:

1 1 6
2 3 7
3 4 9