2012年(2)
分类:
2012-11-03 18:47:16
原文地址:awk之利用三目运算和数组去重 作者:zooyo
文本:
stra b
stra c
stra d
strb 1
strb 2
strb 3
结果:
stra
b
c
d
strb
1
2
3
[解析]
首先把语句剖析为2部分,第一部分是print,第二部分是打印输出的一个表达式。print输出的是什么内容呢?就是这个三目运算逻辑判断出的结果由print输出到屏幕。
我们看看这个三目运算,分成三部分 (a[$1]++)--条件,?--成立则执行后面的内容,:--不成立则执行后面的内容。把每一行的$1作为下标放入数组a中,当然执行到第一行a[stra]是没有值的,即为空,条件为假,则输出stra"\n"b,然后自加一次该下标的数组a就有值了,为1。到了第二行,这个数组是有值的,条件为真,则只输出c,以此类推达到了效果。
[解析]
利用一个变量来保存$1的值,然后来比较判断,效率上比数组高,特别是大文件的时候能体现优势。