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

Val*_*tti 22 bash awk

我有一个有两列的文件

1 1
2 3
3 4
Run Code Online (Sandbox Code Playgroud)

以及一列为的文件

6
7
9
Run Code Online (Sandbox Code Playgroud)

我想在第一个文件中添加第二个文件.输出应该是:

1 1 6
2 3 7
3 4 9
Run Code Online (Sandbox Code Playgroud)

Chr*_*our 41

$ 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
Run Code Online (Sandbox Code Playgroud)

  • @fedorqui使用`paste`的默认分隔符是一个选项卡. (3认同)

jay*_*ngh 8

awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' file1 file2
Run Code Online (Sandbox Code Playgroud)

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


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

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
Run Code Online (Sandbox Code Playgroud)

  • 很酷的答案。您介意解释一下它是如何工作的吗?我不明白为什么它先是“a[NR]”,然后是“a[FNR]”。 (2认同)