- 论坛徽章:
- 2
|
文件内容如下
[root@client1 tmp]# cat b.txt
20121001 testing
20121001 test.192.168.0.1
20121001 time:20
实现格式如下
20121001 192.168.0.1,20
我用这种方式实现 得到下面这种结果
[root@client1 tmp]# cat b.txt | awk 'NR>1{a[$1]=a[$1]? a[$1]"," $2 2}END{for (i in a)print i,a[i]}' | sed 's/[a-z]//g'
20121001 .192.168.0.1,:20
问题1:我现在a[$1]刚开始是空 还是2012101这个值? 还有无论a[$1]是空还是有值 第一次执行得到的应该都是test.192.168.0.1 然后再执行a[$1]=a[$1]这个一直都是真吧 就会还是得到time:20 中间这个逗号又是怎么来的呢 ( ?:这个运算符 0的时候是取?后面的 !0是:后面的)
望大牛解释一下 或者我这个理解是错的 你们给我解释一下 感觉有点晕了
问题2:能得到要求的语句
谢谢了
|
|