加入对两个文件的第一列 [英] Join on first column of two files

查看:121
本文介绍了加入对两个文件的第一列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何能够通过每个第一栏加入两个文件?

文件1:

  116
116
116
116
116
117
117
117
117
117

文件2:

  1 37.8378378378378
2 30.5009605438156
3 35.4106079490375
4 25.6565656565657
.....
.....
116 49.4073275862069
117 25.8182578688696
118 36.1389759665622
119 36.7218282111899
120 55.1587301587302

我要在这两个文件中匹配第一列,并打印这样的:

  116 49.4073275862069
116 49.4073275862069
116 49.4073275862069
116 49.4073275862069
116 49.4073275862069
117 25.8182578688696
117 25.8182578688696
117 25.8182578688696
117 25.8182578688696
117 25.8182578688696


解决方案

试试这个单行:

 的awk'NR == FNR {a [$ 1] = $ 2;接下来} $ 1的打印{$ 1,[$ 1]}'文件2文件1

How can I join two files by the first column of each?

file1:

116
116
116
116
116
117
117
117
117
117

file2:

1   37.8378378378378
2   30.5009605438156
3   35.4106079490375
4   25.6565656565657
.....
.....
116 49.4073275862069
117 25.8182578688696
118 36.1389759665622
119 36.7218282111899
120 55.1587301587302

I want to match the 1st columns in both files and print like this:

116  49.4073275862069
116  49.4073275862069  
116  49.4073275862069 
116  49.4073275862069 
116  49.4073275862069 
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696
117  25.8182578688696

解决方案

try this one-liner:

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

这篇关于加入对两个文件的第一列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆