读书人

sed 正则表达式婚配

发布时间: 2012-10-10 13:58:11 作者: rapoo

sed 正则表达式匹配
文本文件中有如下信息:

<a href=http://www.weather.com.cn/static/html/weather.shtml>
<a href=http://www.365rili.com/>
<a href=http://www.ip138.com/>
<a href=http://www.baofeng.com/>
<a href=http://www.360.cn/down/soft_down2-3.html >
<a href=http://www.fetion.com.cn/download/>
<a href=http://www.drivergenius.com/>
<a href=http://www.pps.tv/bd/hz/index.htm>
<a href=http://www.uusee.com/tg/uusee_down.html>
<a href=http://www.aobi.com/>
<a href=http://www.2144.cn/>

我想用sed -i 's/http:\/\/[A-Za-z0-9\.]+(com|cn|org|net)/|&|/g' filename
将"http://www.uusee.com"
变成"|http://www.uusee.com|"这个样子

可是就是不行,请问打家问题出现哪里阿??谢谢了

还有就是,我用sed -i 's/(com|cn|org|net)/|&|/g' file 来匹配com或cn也不行


[解决办法]
先试试这个,只能替换com,不知道怎么加上net之类的

sed -i 's/http:\/\/\(.*\)com/|&|/g' filename
[解决办法]
sed -i 's/\(com\|cn\|org\|net\)/|&|/g' file
[解决办法]

探讨
sed -i 's/\(com\|cn\|org\|net\)/|&|/g' file

[解决办法]
大致可以这么写,上面也都有点问题,楼上只是纯粹的在cn,com等后缀两侧加了| |
看楼主的需要来改一改就行了

还有,假如http://www.weather.com.cn/static/html/weather.shtml这种情况,该怎么加?是加在两侧,还是加到cn这里

知道需求后,自己改改就行了,记住用sed -ri ,-r可以不需要在后面加上那么多的\

读书人网 >UNIXLINUX

热点推荐