Chinaunix
标题:
如何用awk&sed匹配这段内容。
[打印本页]
作者:
listen1001
时间:
2009-08-20 11:32
标题:
如何用awk&sed匹配这段内容。
;; QUESTION SECTION:
;
www.cache.gslb.netease.com.
IN A
;; ANSWER SECTION:
www.cache.gslb.netease.com.
1800 IN A 61.135.253.16
www.cache.gslb.netease.com.
1800 IN A 61.135.253.17
www.cache.gslb.netease.com.
1800 IN A 61.135.253.9
www.cache.gslb.netease.com.
1800 IN A 61.135.253.10
www.cache.gslb.netease.com.
1800 IN A 61.135.253.11
www.cache.gslb.netease.com.
1800 IN A 61.135.253.12
www.cache.gslb.netease.com.
1800 IN A 61.135.253.13
www.cache.gslb.netease.com.
1800 IN A 61.135.253.14
www.cache.gslb.netease.com.
1800 IN A 61.135.253.15
;; AUTHORITY SECTION:
gslb.netease.com. 1800 IN NS gslb2.netease.com.
gslb.netease.com. 1800 IN NS gslb1.netease.com.
***********
现自想匹配ANSWER SECTION这行和/^$/之间的行,如何匹配?
就是/ANSWER SECTION/,/^$/{}的匹配结果去掉ANSWER SECTION行和/^$/行。
最好不要用ANSWER SECTION这行和/^$/之间的内容进行匹配。
作者:
Minsic
时间:
2009-08-20 11:43
sed -n '/ANSWER SECTION/,/^$/{/ANSWER SECTION/d;/^$/d;p;}' urfile
复制代码
awk '/ANSWER SECTION/{while($0!~/^$/){getline;if($0~/^$/)exit;else print}}' urfile
复制代码
作者:
lucash
时间:
2009-08-20 11:49
awk '/ANSWER SECTION:/,/^$/{if ($0 ~ /ANSWER|^$/) getline;else print}' file
作者:
listen1001
时间:
2009-08-20 11:51
谢谢楼上的,这样可以的
但用awk的话 pattern {action}
我在匹配以后还要在action里对数据进行操作的,这样有点乱。
有没有直接在pattern部分就匹配的方法
作者:
listen1001
时间:
2009-08-20 11:52
支不支持//+1,//-1的匹配方法阿。
作者:
小木虫子
时间:
2009-08-20 11:55
[root@test ~]# sed -n '/ANSWER SECTION/,/^$/p' test|tail -n +2|tac|tail -n +2|tr -s " " " "|sort -t" " -k5.12 -n -r | awk 'BEGIN{OFS="\t"}$1=$1'
www.cache.gslb.netease.com.
1800 IN A 61.135.253.17
www.cache.gslb.netease.com.
1800 IN A 61.135.253.16
www.cache.gslb.netease.com.
1800 IN A 61.135.253.15
www.cache.gslb.netease.com.
1800 IN A 61.135.253.14
www.cache.gslb.netease.com.
1800 IN A 61.135.253.13
www.cache.gslb.netease.com.
1800 IN A 61.135.253.12
www.cache.gslb.netease.com.
1800 IN A 61.135.253.11
www.cache.gslb.netease.com.
1800 IN A 61.135.253.10
www.cache.gslb.netease.com.
1800 IN A 61.135.253.9
[
本帖最后由 小木虫子 于 2009-8-20 12:21 编辑
]
作者:
listen1001
时间:
2009-08-20 11:58
根据大家的思路直接在{}里加个判断
awk '/ANSWER SECTION/,/^$/{if(NF==5)print $1,$5>"output"}' file
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2