我使用以下表达式来获取一行文本的第二项。
/\s(.*?) /
示例输出可能是23:55:01
。我还可以删除同一表达式中的冒号吗?
示例输入是:
16-03-17 05:00:02 JRTF:......
... 之后的所有内容都应该是多余的。在这种情况下,我需要提取050002
。
编辑(现在是Perl / grep问题):
我需要这样做的原因是我得到的所有值都大于当前时间。
我目前正在使用Perl中的grep以下方式执行此操作:
my @windowLog = grep {
join("", split(":", (split(" ", $_))[1])) > $UTCTime
} @oldLog;
其中@oldLog
是一个字符串数组,与上面的例子类似,$UTCTime
是当前时间。
看起来非常低效且不整洁。
答案 0 :(得分:3)
我会写
my @windowLog = grep { (split)[1] =~ tr/://dr > $UTCTime } @oldLog;