首页 > 解决方案 > 使用 awk 从两个文件中获取数据

问题描述

我有两个不同的文件,每个文件有两列。

文件1.txt

DevId   Group
aaa     A
bbb     B

文件2.txt

Group   RefId
A       111-222-333
B       444-555-666

我只需要 DevId 及其对应的 RefId。

所需输出

DevId   RefId
aaa     111-222-333
bbb     444-555-666

我尝试使用这种语法,但我无法正确理解它。

awk -F, -v OFS=, 'NR==FNR{a[$1]=$2;next}{print a[$2],$1}' file2.txt file1.txt

我希望有人能帮助我。

标签: awklookup

解决方案


这里:

awk -v RS="\r\n" 'FNR==NR{a[$1]=$2;next}{ print $1, a[$2]}' file2.txt file1.txt

这是从Awk 多个文件修改的,我建议您阅读这些文件以获得解释。

编辑:正如@JamesBrown 所提到的,添加-v RS="\r\n"了行尾


推荐阅读