LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 951|回复: 4

文本抽取问题

[复制链接]
发表于 2010-8-10 15:37:59 | 显示全部楼层 |阅读模式
有很多文件,内容结构如下:
<doc>
<url>http://xxxxxxx...</url>
<docID>xxxxxxxxxxxx</docID>
<content>yyyyyyyyyy</content>
<doc>
每5行一组,现在要将每组的第四行<content>yyyyyyyyyy</content>两个标签之间的的内容(蓝色部分yyyyyyyyyy)提取出来。

我查了sed和awk,只查到修改或者删除,不知道怎么抽取内容,请各位朋友帮忙,谢谢!
发表于 2010-8-10 21:34:06 | 显示全部楼层
  1. sed -n '/<content>/s#</\?content>##gp' 文件名
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-10 21:51:53 | 显示全部楼层
Post by lastart;2107782

  1. sed -n '/<content>/s#</\?content>##gp' 文件名
复制代码


大牛可否解释一二,s#这个符号我从来没有见过;
</\?content>什么意思,后面两个#又是什么意思?
回复 支持 反对

使用道具 举报

发表于 2010-8-10 23:07:49 | 显示全部楼层
没什么,只不过因为要匹配的字符里含有符号“/”
所以就用换成#号了,换成别的也可以,没有限制:
    The syntax of the `s' (as in substitute) command is
`s/REGEXP/REPLACEMENT/FLAGS'.  The `/' characters may be uniformly
replaced by any other single character within any given `s' command.
/\?就是匹配0个或一个/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-11 09:02:28 | 显示全部楼层
多谢,受教了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表