日期:2014-05-16  浏览次数:20746 次

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可以不需要在后面加上那么多的\