2013-07-29 29 views
2
perl -pi.back -e 's/2013/07/31-05:54:14/2014/07/31-00:00:00/g;' /tmp/ranjan/replace.SEL 

我正在使用上述一个班轮将2013/07/31-05:54:14的日期替换为2014/07/31-00:00:00。但我无法做到。我只能找到字符串的替代,而不是以上述格式的数字。请帮助我。如何在Perl中替换日期?

回答

11

使用alternative delimiter

s{find}{replace}g; 

s#find#replace#g; 

否则你不得不逃避所有的/

+1

充分享受特权编辑 –

4

的Perl认为,正斜杠在您的日期实际上是赋值语句s///g的一部分,所以你可以逃脱斜杠在您的日期,或者使用不同的分隔符为你的替代

perl -pi.back -e 's/2013\/07\/31-05:54:14/2014\/07\/31-00:00:00/g;' 

或更具可读性:

perl -pi.back -e 's#2013/07/31-05:54:14#2014/07/31-00:00:00#g;' 
3

您必须更改您的分隔符,或者您已正确转义您的正则表达式字符串。

稀释剂可以是任何不可打印的,我喜欢使用!

这样的:

s!2013/07/31-05:54:14!2014/07/31-00:00:00!g;