0

我有两个文件,

$cat file_1.txt
95335df46cfdb345c0214296e0043c00,NA
a0af947a85e6895dab70eaec136cfed2,NA

$cat file_2.txt
77f673137c17b4b0405d13060e9715a3,5,X,Y
874d51610c15975c82c081aba0b096c3,5,A,M
95335df46cfdb345c0214296e0043c00,5,M,N

我正在将first“file_1.txt”中的first字段与"file_2.txt". 如果有'hash'任何匹配,则从 中获取完整的匹配行"file_2.txt"

匹配行:(从file_2.txt

95335df46cfdb345c0214296e0043c00,5,M,N

我尝试使用awk,但没有得到任何结果。

$ awk 'NR==FNR{a[$1];next} ($1) in a' file_1.txt file_2.txt

我在这里犯了什么错误吗?请问有什么建议吗?

4

2 回答 2

2
$ awk -F, 'NR==FNR{a[$1];next} $1 in a' file_1.txt file_2.txt
95335df46cfdb345c0214296e0043c00,5,M,N

您错过了指定,要使用的分隔符

于 2017-07-10T15:49:01.910 回答
1

使用join命令:

join -t',' -o2.1,2.2,2.3,2.4 <(sort file_1.txt) <(sort file_2.txt)

输出:

95335df46cfdb345c0214296e0043c00,5,M,N

  • -t','- 输入/输出字段分隔符
于 2017-07-10T16:06:48.677 回答