以下是我的两个文件'含量:
cat f1
9
5
3
cat f2
1
2
3
这是我的代码,它完美地运行并根据我的理解提供输出:
awk 'NR==FNR {a[$0]; next} FNR in a' f1 f2
3
但是,当我交换这两个参数文件的位置时,输出与我预期的不同。
awk 'NR==FNR {a[$0]; next} FNR in a' f2 f1
9
5
3
我希望输出再次像之前一样3,因为f2和f1都有3行,然而键3存储在哈希映射中。请解释第二个代码的工作原理。
答案 0 :(得分:1)
第二个例子的输出当然是正确的。
由于a[2]
包含值1,2,3,因此数组a[3]
最终会显示元素f1
,FNR == 1
和1
。在处理a
时,第1行有9
,而buttonNumber
是$('.progressButton').children('p').text(buttonNumber[1]);
中的索引,因此会打印第1行(包含$('.progressButton').children('p').eq(i-1).text(i);
);类似于第2行和第3行,因此您看到输出。