awk比较两个文件在交换参数文件的位置时给出了意外的输出

时间:2015-12-16 01:27:08

标签: awk

以下是我的两个文件'含量:

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存储在哈希映射中。请解释第二个代码的工作原理。

1 个答案:

答案 0 :(得分:1)

第二个例子的输出当然是正确的。

由于a[2]包含值1,2,3,因此数组a[3]最终会显示元素f1FNR == 11。在处理a时,第1行有9,而buttonNumber$('.progressButton').children('p').text(buttonNumber[1]); 中的索引,因此会打印第1行(包含$('.progressButton').children('p').eq(i-1).text(i); );类似于第2行和第3行,因此您看到输出。