Perl:用当前时间戳替换文本参数

时间:2013-06-27 20:51:04

标签: perl replace timestamp

我有一个实用程序,每晚都会生成代码文档。我想添加一个时间戳,以便了解生成的文档的年龄。我想用perl。

我已经看到了以下句子我可以用我想要的任何值改变一个小丑(%1)

perl -pi.bak -e 's/%1/date/g' footer.html

使用另一个我可以得到系统时间戳:

perl -MPOSIX -we "print POSIX::strftime('%d/%m/%Y %H:%M:%S', localtime)"

我的问题是,是否有任何方法只用一个句子合并两个指令。

非常感谢

2 个答案:

答案 0 :(得分:2)

尝试这样做:

perl -MPOSIX -pi.bak -e 'BEGIN{$date = strftime("%d/%m/%Y %H:%M:%S", localtime);} s/%1/$date/g' file.html

答案 1 :(得分:2)

sh命令:

perl -i.bak -MPOSIX -pe's/%1/strftime("%d/%m/%Y %H:%M:%S", localtime)/eg'

cmd命令:

perl -i.bak -MPOSIX -pe"s/%1/strftime('%d/%m/%Y %H:%M:%S', localtime)/eg"

/e导致替换表达式被视为要执行的Perl代码,其结果是替换文本。