使用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后的数字,取出最大的那个数字所在行以及所属它区域的数据。
执行代码如下:
- [root@station1 ~]# cat data
- 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
- [root@station1 ~]# cat a.awk
- #!/usr/bin/awk -f
- BEGIN{
- RS="name"
- FS=" |\n"
- }
- $1 > max{
- max=$1
- line=$0
- }
- END{printf RS""line}
- [root@station1 ~]# ./a.awk data
- name8 30
- a
- c
- d
- [root@station1 ~]#
阅读(1564) | 评论(0) | 转发(0) |