LinuxSir.cn,穿越时空的Linuxsir!

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

求教sed小问题

[复制链接]
发表于 2007-6-11 09:48:36 | 显示全部楼层 |阅读模式
高渐离:你死了,<span class=yqlink><form class=yqin action=http://www.iask.com/n method=post><input type=hidden name=k value=%C7%D8%CA%BC%BB%CA></form><a href=http://www.iask.com/n?k=%C7%D8%CA%BC%BB%CA target=_blank onClick="activateYQinl(this);return false;" class=akey title=秦始皇>秦始皇</a></span>交给我吧

我想把这段话处理为:

高渐离:你死了,秦始皇交给我吧.

不知道该怎么做,请教一下,谢谢。
发表于 2007-6-11 10:14:04 | 显示全部楼层
把尖括号里的删除掉就行了吧。
类似于sed 's/<.\+>//g' old.html > new.txt这样的命令吧。
回复 支持 反对

使用道具 举报

发表于 2007-6-12 00:21:30 | 显示全部楼层
  1. [0 No.1002 huan@huan ~]$ echo '高渐离:你死了,<span class=yqlink><form class=yqin action=http://www.iask.com/n method=post><input type=hidden name=k value=%C7%D8%CA%BC%BB%CA></form><a href=http://www.iask.com/n?k=%C7%D8%CA%BC%BB%CA target=_blank onClick="activateYQinl(this);return false;" class=akey title=秦始皇>秦始 皇</a></span>交给我吧' | perl -lpe 's/<[^<>]+>//g'
  2. 高渐离:你死了,秦始皇交给我吧
  3. [0 No.1003 huan@huan ~]$
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-6-12 00:26:17 | 显示全部楼层
试了一下,sed也成,不过据说这种方法不可靠,呵
·
  1. [0 No.1025 huan@huan ~]$ echo '高渐离:你死了,<span class=yqlink><form class=yqin action=http://www.iask.com/n method=post><input type=hidden name=k value=%C7%D8%CA%BC%BB%CA></form><a href=http://www.iask.com/n?k=%C7%D8%CA%BC%BB%CA target=_blank onClick="activateYQinl(this);return false;" class=akey title=秦始皇>秦始皇</a></span>交给我吧' | sed -r 's/<[^<>]+>//g'
  2. 高渐离:你死了,秦始皇交给我吧
  3. [0 No.1026 huan@huan ~]$
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-6-12 09:05:10 | 显示全部楼层
其实可以删除所有ascii码,保留中文字符就可以
sed -e 's/[[:print:]]\|[[:cntrl:]]//g'
回复 支持 反对

使用道具 举报

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

本版积分规则

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