好的,我有一个包含两列数据的数据文件。它们是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时间戳。我的第二个任务是将其转换为常规时间戳。请,任何帮助将不胜感激。
感谢。
答案 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";
}
}