Chinaunix首页 | 论坛 | 博客
  • 博客访问: 915364
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2012-09-14 16:03:15

使用awk截取区域性的数据时,使用记录分割符RS是比较方便的。
如下是一个搞生物统计的,简化后如下:
name1    10
a
b
c
name2    20
d
e
f
name3    15
a
c
e
name8    30
a
c
d
name4    23
8
2
3   
比较name后的数字,取出最大的那个数字所在行以及所属它区域的数据。
执行代码如下:


  1. [root@station1 ~]# cat data
  2. name1    10
  3. a
  4. b
  5. c
  6. name2    20
  7. d
  8. e
  9. f
  10. name3    15
  11. a
  12. c
  13. e
  14. name8    30
  15. a
  16. c
  17. d
  18. name4    23
  19. 8
  20. 2
  21. 3    
  22. [root@station1 ~]# cat a.awk
  23. #!/usr/bin/awk -f
  24. BEGIN{
  25.     RS="name"
  26.     FS=" |\n"
  27. }
  28. $1 > max{
  29.     max=$1
  30.     line=$0
  31. }
  32. END{printf RS""line}
  33. [root@station1 ~]# ./a.awk data
  34. name8    30
  35. a
  36. c
  37. d
  38. [root@station1 ~]#



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