Chinaunix首页 | 论坛 | 博客
  • 博客访问: 400081
  • 博文数量: 103
  • 博客积分: 3073
  • 博客等级: 中校
  • 技术积分: 1078
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-23 15:04
文章分类

全部博文(103)

文章存档

2012年(13)

2011年(76)

2010年(14)

awk

分类: LINUX

2011-06-30 17:57:38

awk 是unix ***能最强的过滤器。
awk [-F 分隔符] ' -f 程序文件 [文件1.....文件n]

实例:
1 .
  1. cat first |awk '{sum = sum+ $1}; END {print sum}'
打印第二字段
2.
  1. awk '{sum = sum+ $1}; END {print sum}' first
输出第一列的和
或者
  1. cat first |awk '{sum = sum+ $1}; END {print sum}'
awk
  1. # $@ all the arguments
  2. 2 #delete rows that contains %
  3. 3
  4. 4 sed '/\%/d' $@ >fv1
  5. 5 sed '1,1 d' fv1 >f1
  6. 6 sort -n -k 1 -k 2 f1>fv1.0
  7. 7 awk '{print $1}' fv1.0 >fv1.1
  8. 8 awk '
  9. 9 BEGIN {pre=1;
  10. 10 row=1;
  11. 11 k=1;
  12. 12 row_start[0]=1;
  13. 13 }
  14. 14 {
  15. 15 {
  16. 16 if(pre!=$1)
  17. 17 {
  18. 18 row_start[row]=k;
  19. 19 row=row+1;
  20. 20 pre=$1
  21. 21 }
  22. 22 k=k+1;
  23. 23 next
  24. 24 }
  25. 25
  26. 26 }
  27. 27
  28. 28 END{
  29. 29 row_start[row]=k;
  30. 30 for(j=0;j<=row;j++)
  31. 31 printf "%d\n", row_start[j]
  32. 32 }' fv1.1 >fv1.2
  33. 33
  34. 34 awk '{print $2 }' fv1.0 >>fv1.2
  35. 35 awk '{print $3 }' fv1.0 >>fv1.2
  36. 36


阅读(579) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~