每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。
分类: LINUX
2011-05-14 11:34:46
文本:
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的值,然后来比较判断,效率上比数组高,特别是大文件的时候能体现优势。