0
为什么保存在阵列中的列不能被打印出来?AWK:为什么保存在阵列中的列不能被打印出来?
我有以下两个文件:
第一个文件被称为 “文件1:”
a 1
b 2
c 3
第二个文件被称为 “文件2”:
1 100
2 200
3 300
当我运行下面的命令:
awk 'NR==FNR{a[$1]=$2;next}{print $0 "\t" a[$1]}' file2 file1
我只得到下面的输出(基本上我只得到文件1印):
a 1
b 2
c 3
我预期的输出应该是这样的:
a 1 100
b 2 200
c 3 300
我无法弄清楚为什么[$ 1]不打印出来。你能帮我吗?非常感谢!
杰夫
打印出'$ 1',太:'打印$ 0 “\ t” $ 1 “\ t” 的一个[$ 1]'。 – melpomene
在阅读文件1:'$ 1'具有值 “A”, “B”, “C”。但是进入'a'的键是来自file2,它们是“1”,“2”,“3”。所以'a [“a”]'是空的。 –
@LarsFischer感谢您的解释。我一直认为数组a是在file2中定义的,而且键仍然是来自file2。我会记住这一点。 – JeffZheng