2012-04-01 23 views
1

當前的日期格式我有一個Perl的一個班輪在一個Makefile的地方編輯文件:的Perl:使用替代部分或正則表達式

perl -pi -e 's/(Package version:).*/$1 123/' myfile 

,在這個改變的字符串Package version:並增加了一些(123例)。現在,我想這樣做相同,但與當前的日期(ISO格式),所以像這樣

perl -pi -e 's/(Release date:).*/$1 <current date>/' myfile 

我怎麼能寫上面<current date>來獲得當前的日期?

回答

1
perl -pi -e 's/(Release date:).*/$1 '"$(date +'%F %T')"'/' myfile 
+4

小心,答案依賴於'date'二進制文件。同樣的結果,但使用便攜式代碼:'perl -MTime :: Piece -pi -e'$ t = localtime-> strftime(「%F%T」); s /(發佈日期:)*/$ 1 $ t /'myfile' – daxim 2012-04-01 08:05:54

+0

也考慮 'perl -MPOSIX -pe's/^(發佈日期:)。*/strftime(「$ 1%Y-%m- %d「,localtime)/ e;' – Reece 2012-12-03 17:29:13

4
perl -MPOSIX -pi -e '$t=strftime("%Y-%m-%d", localtime); s/(Release date:).*/$1 $t/;' myfile 

http://ideone.com/J7eIB

+0

@daxim對不起,我沒有注意到ISO日期要求。現在已經修復了 – 2012-04-01 08:25:25