awk之数据类型
在学习awk的过程中,看到了很多的帖子,如果上面的例子对我来说有价值,自己就会把记录并且总结下来。下面说明一个数据类型的东西。
echo -e '20.7\n25.5\n3'|awk '{a[$0]}END{for(i in a){if(i>20)print i}}'
20.7
25.5
3
很显然3是不能输出的,但是为什么会输出呢。因为数组的下标将3当做了字符串和20比较,因为3>2(在字符串的比较中,只是单纯的比较首个字符的ascll值),所以3也会进行输出。如果不想让他输出,我们可以进行下面的处理。
echo -e '20.7\n25.5\n3'|awk '{a[$0]}END{for(i in a){if(i+0>20)print i}}'
将i+0这时候就会当做是数字进行处理了。