根据列之间的一致性粘贴两个文件

Emi*_*hez 2 shell awk join cut paste

我需要一些帮助:

我有文件1:

ID
100
102
103
104
108
109
112
.
.
.
Run Code Online (Sandbox Code Playgroud)

和file2:

ID    []    p1    p2
100    2.5    3.0    2.0
101    2.0    4.0    3.0
102    2.6    4.0    2.5
103    2.3    2.0    NA
104    2.3    2.0    2.0
105    3.5    2.8    2.0
106    1.7    NA    3.2
107    5.0    4.0    4.0
108    3.2    2.0    4.0
109    2.9    1.0    1.5
110    5.0    NA    NA
111    2.9    4.0    4.0
112    3.1    2.5    2.0
.
.
.
Run Code Online (Sandbox Code Playgroud)

我想将这两个文件粘贴到file3中,如下所示:

ID    []    p1    p2
100    2.5    3.0    2.0
102    2.6    4.0    2.5
103    2.3    2.0    NA
104    2.3    2.0    2.0
108    3.2    2.0    4.0
109    2.9    1.0    1.5
112    3.1    2.5    2.0
.
.
.
Run Code Online (Sandbox Code Playgroud)

基本上,将字段2,3,4中的数据从file2粘贴到file1,考虑file1和file2中的field1中的concordancies.

我尝试了一些带有NR == NFR的awk命令,但我只是得到了file1的内容后跟file2的内容的输出...

有帮助吗?带剪切和粘贴的Unix命令也是受欢迎的

oli*_*liv 6

你确实可以用awk它:

awk 'NR==FNR{a[$1]=1} NR>FNR && a[$1]' file1 file2
Run Code Online (Sandbox Code Playgroud)

NR==FNR{a[$1]=1}a数组填充了file1的内容.

NR>FNR && a[$1]如果数组包含ID(aka $1),则打印file2行.