perl one liner中正则表达式的时期转换日期?

时间:2016-09-14 20:28:45

标签: regex perl

我有一些csv数据看起来像这样:

IdOpenSSLSetLibPath(ExtractFilePath(ParamStr(0)));

我希望将其转换为使用纪元而不是几年,以便它看起来像:

player A,1991,2006
player B,1958,1972

我更喜欢使用以下perl习语:

player A,1329638400,162008400
player B,1326389534,326359832

但是试图在正则表达式中调用相关的perl函数,我没有经历过。

注意:

  • 我很喜欢将月份和日期硬编码(最好是7月1日,这是新足球赛季的开始,我正试图捕捉他们职业生涯的数据)

1 个答案:

答案 0 :(得分:4)

这应该这样做:

perl -pe 'use Time::Local; s/(\d{4})/timelocal(0,0,0,1,0,$1)/ge' player_data.csv

请注意,这假设您希望在当地时间1月1日00:00。如果您想要UTC,请使用timegm代替timelocal