使用perl替换文本字符串中的单位时间戳

时间:2012-08-14 19:26:26

标签: regex perl unix-timestamp

好的,我有一个包含两列数据的数据文件。它们是RecordNumber和Notes。它们被管道隔开,看起来像这样。

Record1|1234567890 username notes notes notes notes 1254184921 username notes notes notes notes|

......这会持续数千条记录。

使用perl脚本(以及可能的一些正则表达式)我需要使用notes列并将其解析出来,使用管道分隔3个新列以加载到表中。列必须为Note_Date|Note_Username|Note_Text

整个notes列中的10位数字串是一个unix时间戳。我的第二个任务是将其转换为常规时间戳。请,任何帮助将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

您可能需要根据需要进行修改:

use strict;
use warnings;

while (<>) {
        my @a = split(/\|/);
        while ($a[1]=~/\s*(\d+)\s+(\w+)\s+([^0-9]*)/g) {
                my ($t, $u, $n) = ($1, $2, $3);
                $t = localtime($t);
                print $a[0], "|$t $u $n|\n";
        }
}