免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1746 | 回复: 6
打印 上一主题 下一主题

如何用awk&sed匹配这段内容。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-20 11:32 |只看该作者 |倒序浏览
;; 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这行和/^$/之间的内容进行匹配。

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
2 [报告]
发表于 2009-08-20 11:43 |只看该作者
  1. sed -n '/ANSWER SECTION/,/^$/{/ANSWER SECTION/d;/^$/d;p;}' urfile
复制代码

  1. awk '/ANSWER SECTION/{while($0!~/^$/){getline;if($0~/^$/)exit;else print}}' urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-08-20 11:49 |只看该作者
awk '/ANSWER SECTION:/,/^$/{if ($0 ~ /ANSWER|^$/) getline;else print}' file

论坛徽章:
0
4 [报告]
发表于 2009-08-20 11:51 |只看该作者
谢谢楼上的,这样可以的
但用awk的话    pattern {action}
我在匹配以后还要在action里对数据进行操作的,这样有点乱。
有没有直接在pattern部分就匹配的方法

论坛徽章:
0
5 [报告]
发表于 2009-08-20 11:52 |只看该作者
支不支持//+1,//-1的匹配方法阿。

论坛徽章:
0
6 [报告]
发表于 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 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2009-08-20 11:58 |只看该作者
根据大家的思路直接在{}里加个判断
awk '/ANSWER SECTION/,/^$/{if(NF==5)print $1,$5>"output"}' file
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP