gag*_*ina 1 regex linux bash sed
我在使用sed做一个简单的正则表达式时遇到了一些问题.
我要在sql文件中做一些替换,我正在尝试使用sed.
我应该替换一些链接的url.链接采用以下格式:
万维网.site1 .com/blog/2012/12/12
我想在所有链接中将site1替换为site2.
为了找到这些链接,我写了以下正则表达式:
(site1.com)\/blog\/\d{4}\/\d{2}\/\d{2}
Run Code Online (Sandbox Code Playgroud)
而且好像很适合.
使用sed做替换的事情我写了下面的代码
cat back.sql | sed 's:(site1.com)\/blog\/\d{4}\/\d{2}\/\d{2}:site2.com:' > fixed.sql
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用..
sed不支持\d(至少我不知道),并且{4}仅支持扩展正则表达式.
sed -r 's:site1.com(/blog/[0-9]{4}/[0-9]{2}/[0-9]{2}):site2.com/\1:'
Run Code Online (Sandbox Code Playgroud)
作为一个基本的正则表达式(需要大量的转义):
sed 's:site1.com\(/blog/[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}\):site2.com/\1:'
Run Code Online (Sandbox Code Playgroud)
PS.如果使用不同的delemiters(:),则不需要转义斜杠
| 归档时间: |
|
| 查看次数: |
1341 次 |
| 最近记录: |