bash sed命令无法查找和替换

时间:2013-05-21 13:13:56

标签: bash sed

我无法获得以下bash sed命令来查找和替换,因为它无法匹配:

$ sed -i.bak 's,\"js/lj.main.min.js\?\d{14}\","js/lj.main.min.js?20130521080532",g' index.html

$ sed -i.bak 's,\"js/lj\.main\.min\.js\?\d{14}\","js/lj.main.min.js?20130521080532",g' index.html

在包含以下内容的文本文件中

<script src="js/lj.main.min.js?20130520120515"></script>

应改为:

<script src="js/lj.main.min.js?20130521080532"></script>

当我在http://fiddle.re/m7x56

中尝试时,正则表达式本身有效

怎么了?

1 个答案:

答案 0 :(得分:2)

这个表达式对我有用:

's,"js/lj\.main\.min.\js?[0-9]\{14\}","js/lj.main.min.js?20130521080532",g'

请注意,正则表达式库有许多版本。某些功能(\d)可能不受支持,某些特殊字符的反斜杠可能不同({}?等。)