Chinaunix

标题: 帮忙看看下面的文件如何用awk处理得到结果,多谢 [打印本页]

作者: cai0l    时间: 2010-09-21 21:15
标题: 帮忙看看下面的文件如何用awk处理得到结果,多谢
文件a
335547||||||||||
335547|335547|||||||||
335547||335547||335547||||||
335547|||335547||||335547|||
335547||||||335547||||
335547|||||||335547|||
335547|335547|335547|335547|335547|335547|335547|335547|335547|335547|

需要统计没列中的不为空的域的个数,如何用awk来实现?
我只会用sed和awk叠加实现。sed 's/||/|/g' a|sed 's/||/|/g'|sed 's/||/|/g'|sed 's/||/|/g'|awk -F "|" '{print NF-1}'
作者: bbgg1983    时间: 2010-09-21 21:23
  1. awk -F\| '{T=0;for(i=1;i<=NF;i++)if($i!~/^$/)T++;print T}' a
复制代码

作者: expert1    时间: 2010-09-21 21:27
ls 好
作者: bbgg1983    时间: 2010-09-21 21:31
回复 3# expert1


    kao ,今天一天你跑哪去了,没有你大家很寂寞很蛋疼
作者: expert1    时间: 2010-09-21 21:40
回复 4# bbgg1983


    呵呵,去机房了。
作者: bbgg1983    时间: 2010-09-21 21:43
回复 5# expert1


    好吧~中秋快乐,同学。
作者: cai0l    时间: 2010-09-21 21:44
多谢指教。。
作者: expert1    时间: 2010-09-21 21:47
回复 6# bbgg1983


    ni ye yi yang a
作者: r2007    时间: 2010-09-21 22:33
没环境测试:
  1. awk -F\|+ '{print NF}'
复制代码
这个成立吗?
作者: bbgg1983    时间: 2010-09-21 22:49
回复 9# r2007
  1. suntao@~$ awk -F'\|+' '{print NF-1}' a
  2. awk: 警告: 转义序列“\|”被当作单纯的“|”
  3. 0
  4. 0
  5. 0
  6. 0
  7. 0
  8. 0
  9. 0
  10. suntao@~$ awk -F'[|]+' '{print NF-1}' a
  11. 1
  12. 2
  13. 3
  14. 3
  15. 2
  16. 2
  17. 10
复制代码

作者: jing494485758    时间: 2010-09-21 23:41
[|]+这个用得真妙
作者: aili_chinaunix    时间: 2010-09-22 08:22
[root@www alen]# awk -F"[|]+" '{print NR,NF-1}' c
1 1
2 2
3 3
4 3
5 2
6 2
7 10
这应该是最简单的了
作者: dragon23452345    时间: 2010-09-26 18:21
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2