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
@shelter,就是它!它看起来像我的版本的sed不支持'+',谢谢!生活可以继续! – 2013-02-20 21:39:08
@timpeterson你也可以使用启用扩展正则表达式的选项'-r'(至少在某些版本的sed中,例如GNU sed 4.2.1),用'[0-9] +'与sed匹配。 – speakr 2013-02-20 21:40:39
我之前尝试过'-r',但是没有工作,我只是使用了MacOSX 10.7.6,所以不知道这是否是一个边缘情况。 – 2013-02-20 21:45:31