0

我有一个实用程序可以每天晚上生成代码文档。我想添加一个时间戳,以了解生成的文档有多旧。我想用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)"

我的问题是是否有任何方法可以在一句话中合并两个指令。

非常感谢

4

2 回答 2

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 代码执行,其结果是替换文本。

于 2013-06-27T21:03:55.090 回答
2

尝试这样做:

perl -MPOSIX -pi.bak -e 'BEGIN{$date = strftime("%d/%m/%Y %H:%M:%S", localtime);} s/%1/$date/g' file.html
于 2013-06-27T20:58:04.447 回答