使用sed替换文本

时间:2011-09-27 09:39:52

标签: regex shell date sed

我无法通过sed替换脚本中的修改日期。

我收到的最后修改日期如下:

olddate=`grep -m1 "Built " script.sh | cut -c 22-29`

我得到当前日期:

newdate=`date +%d/%m/%y`

基本上我想用旧日期替换旧日期

sed -i "" "s/$olddate/$newdate/g" script.sh

但这不起作用,因为日期包含斜杠。我环顾四周,无法找到正确逃脱它们的方法。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:6)

您可以使用除斜杠之外的分隔符,例如“;

sed -i "" "s;$olddate;$newdate;g" script.sh

答案 1 :(得分:3)

使用,而不是/!

sed -i "" "s,$olddate,$newdate,g" script.sh

实际上,您几乎可以使用任何char作为分隔符。

答案 2 :(得分:2)

使用sed "s#$olddate#$newdate#g"

应该有效