使用Perl更改CSV文件中的文本

时间:2013-10-20 01:05:34

标签: perl

我对Perl一无所知。我已经查看了一些在线教程,并且对以下内容感到茫然。

我在PostgreSQL中进行查询,保存为CSV文件。但是,创建CSV文件后需要更改一个元素,我不知道该怎么做。

现有的查询结果是这样的

phone        date      time     staff email and customer ID -- my explanation 

1112223333,10/21/2013,3:00 AM,sklund@myemail.comSMIB010170 -- data in csv

查询完成后,时间字段中的数据必须转换为:

1112223333,10/21/2013,03:00am,sklund@myemail.comSMIB010170

如您所见,如果小时数小于10,则需要修改时间0,并且AM必须更改为am

是否有一个简单的Perl脚本可以执行此操作?当然,数据行会有所不同,因为每一行都会反映当天查询的结果。

如果有人可以指点我的教程,链接或帮助,我将非常感激。

1 个答案:

答案 0 :(得分:1)

这将满足您的需求。

我假设你想要删除AM之前的空格?你没有在你的问题中提到它。

perl -pe 's/,(\d{1,2}):(\d\d)\s+([AP]M),/sprintf ",%02d:%02d%s,",$1,$2,lc $3/ei' mylogfile > newlogfile