sed替换字符串中的数字

问题描述:

我可以替换字符串中的文本,但只要我尝试放入数字就无法匹配。sed替换字符串中的数字

注意表明这个[0-9]\+\是造成这个问题。

这工作:

sed -i "" -e "s/mySite-.js/mySite$current_timestamp.js/" template.php 

这不:

sed -i "" -e "s/mySite-[0-9]\+\.js/mySite$current_timestamp.js/" template.php 

我询问this question earlier道歉,但我已经花了差不多一整天的这个愚蠢的事情,我要疯了。

请考虑包括样本数据和预期输出。

如果您要删除[0-9]\+的重复号码,请尝试删除\,然后使用[0-9]+

如果不工作,那么你的sed不支持+,所以使用

sed -i "" -e "s/mySite-[0-9][0-9]*\.js/mySite$current_timestamp.js/" template.php 

IHTH

+0

@shelter,就是它!它看起来像我的版本的sed不支持'+',谢谢!生活可以继续! – 2013-02-20 21:39:08

+1

@timpeterson你也可以使用启用扩展正则表达式的选项'-r'(至少在某些版本的sed中,例如GNU sed 4.2.1),用'[0-9] +'与sed匹配。 – speakr 2013-02-20 21:40:39

+0

我之前尝试过'-r',但是没有工作,我只是使用了MacOSX 10.7.6,所以不知道这是否是一个边缘情况。 – 2013-02-20 21:45:31