为什么无法打印保存在数组中的列?
我有以下两个文件:
第一个文件名为“file1:”
a 1
b 2
c 3
第二个文件名为“file2”:
1 100
2 200
3 300
当我运行以下命令时:
awk 'NR==FNR{a[$1]=$2;next}{print $0 "\t" a[$1]}' file2 file1
我只得到以下输出(基本上我只打印了file1):
a 1
b 2
c 3
我期望的输出应该是:
a 1 100
b 2 200
c 3 300
我无法弄清楚为什么没有打印出[$ 1]。你能帮帮我吗?非常感谢!
杰夫
答案 0 :(得分:1)
您使用了错误的密钥,因此该密钥的数组元素为空
awk 'NR==FNR {a[$1]=$2; next}
{print $0, a[$2]}' file2 file1
或者如果密钥已按照示例中的顺序排序,
join -12 -21 file1 file2 -o1.1,1.2,2.2