- 论坛徽章:
- 3
|
原帖由 liaosnet 于 2009-1-9 11:09 发表 ![]()
那也不对呀...最后一行也就是第五行的值跟第一行不同...可1.输出的最后一行跟第一行相同......
楼上说的对。刚才我写的 漏了{for ..}前的判断,每行时都判断a[$0]的值,然后++。
看看14楼的,简单说就是
1 处理每行时都执行{for .. print},输出当前行内容
2 只在END{}里输出。之前处理每行,给数组赋值时,键值相等的会覆盖,留下来的就是不重复的了。
- cat a1
- 1,2,2008-12-24 9:00
- 1,2,2008-12-24 9:00
- 2,3,2008-12-24 9:01
- 2,3,2008-12-24 9:01
- 1,2,2008-12-24 9:05
- ==================
- $ awk 'a[$0]++{print "line:"NR"-------";for (i in a){print i}}' a1
- line:2-------
- 1,2,2008-12-24 9:00
- line:4-------
- 1,2,2008-12-24 9:00
- 2,3,2008-12-24 9:01
复制代码 |
|