比较两个文件并从第二个文件中获得匹配的行结果
Compare two files and get the matching line result from 2nd file
我有两个文件,
$cat file_1.txt
95335df46cfdb345c0214296e0043c00,NA
a0af947a85e6895dab70eaec136cfed2,NA
$cat file_2.txt
77f673137c17b4b0405d13060e9715a3,5,X,Y
874d51610c15975c82c081aba0b096c3,5,A,M
95335df46cfdb345c0214296e0043c00,5,M,N
我正在将 "file_1.txt" 的 first
字段与 first
字段与 "file_2.txt"
进行比较。如果有 'hash'
任何匹配项,则从 "file_2.txt"
中获取完整的匹配行。
匹配行:(来自 file_2.txt
)
95335df46cfdb345c0214296e0043c00,5,M,N
我尝试使用 awk
,但没有得到任何结果。
$ awk 'NR==FNR{a[];next} () in a' file_1.txt file_2.txt
我在这里有什么错误吗?有什么建议吗?
$ awk -F, 'NR==FNR{a[];next} in a' file_1.txt file_2.txt
95335df46cfdb345c0214296e0043c00,5,M,N
您没有指定 ,
是要使用的分隔符
使用join
命令:
join -t',' -o2.1,2.2,2.3,2.4 <(sort file_1.txt) <(sort file_2.txt)
输出:
95335df46cfdb345c0214296e0043c00,5,M,N
-t','
- input/output 字段分隔符
我有两个文件,
$cat file_1.txt
95335df46cfdb345c0214296e0043c00,NA
a0af947a85e6895dab70eaec136cfed2,NA
$cat file_2.txt
77f673137c17b4b0405d13060e9715a3,5,X,Y
874d51610c15975c82c081aba0b096c3,5,A,M
95335df46cfdb345c0214296e0043c00,5,M,N
我正在将 "file_1.txt" 的 first
字段与 first
字段与 "file_2.txt"
进行比较。如果有 'hash'
任何匹配项,则从 "file_2.txt"
中获取完整的匹配行。
匹配行:(来自 file_2.txt
)
95335df46cfdb345c0214296e0043c00,5,M,N
我尝试使用 awk
,但没有得到任何结果。
$ awk 'NR==FNR{a[];next} () in a' file_1.txt file_2.txt
我在这里有什么错误吗?有什么建议吗?
$ awk -F, 'NR==FNR{a[];next} in a' file_1.txt file_2.txt
95335df46cfdb345c0214296e0043c00,5,M,N
您没有指定 ,
是要使用的分隔符
使用join
命令:
join -t',' -o2.1,2.2,2.3,2.4 <(sort file_1.txt) <(sort file_2.txt)
输出:
95335df46cfdb345c0214296e0043c00,5,M,N
-t','
- input/output 字段分隔符