使用awk截取某区域的数据的例子
时间:2014-09-15 02:27 来源:linux.it.net.cn 作者:it
在使用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 ~]#
(责任编辑:IT)
在使用awk截取区域性的数据时,使用记录分割符RS是比较方便的。
复制代码代码如下:
[root@station1 ~]# cat a.awk
(责任编辑:IT)#!/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 ~]# |