Perl RegExp:打印与特定时间戳匹配的行
我有一个问题,我不知道如何解决。我有一个巨大的日志文件,大约有25000行,每行信息都用一分钟分隔,例如09:00:00、09:01:00等。我不想在电子表格中提取我需要的每一行,而是想通过脚本来完成。虽然我还没有那么丰富的脚本编写经验,但我正在努力学习Perl 我想做的是:提取与时间戳09:03:00、09:18:00、09:33:00、09:48:00匹配的每一行,并将其打印到新文件中 这是我完成这项任务的可怕的错误尝试Perl RegExp:打印与特定时间戳匹配的行,regex,perl,Regex,Perl,我有一个问题,我不知道如何解决。我有一个巨大的日志文件,大约有25000行,每行信息都用一分钟分隔,例如09:00:00、09:01:00等。我不想在电子表格中提取我需要的每一行,而是想通过脚本来完成。虽然我还没有那么丰富的脚本编写经验,但我正在努力学习Perl 我想做的是:提取与时间戳09:03:00、09:18:00、09:33:00、09:48:00匹配的每一行,并将其打印到新文件中 这是我完成这项任务的可怕的错误尝试 #!/usr/bin/perl use warnings; use s
#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;
my @expression = ( '09:03:00', '09:18:00', '09:33:00', '09:48:00' );
open FILE, "logfile.txt" or die $!;
if (FILE =~ @expression) {
print "$_\n";
}
您并没有在代码中真正使用regexp。你想要的表达方式相当简单
my $expression = /09:(03|18|33|48):00/
扫描文件的代码可能也不起作用。更标准的方法是
while(<FILE>)
{
if(/$expression/) { print; }
}
或
您并没有在代码中真正使用regexp。你想要的表达方式相当简单
my $expression = /09:(03|18|33|48):00/
扫描文件的代码可能也不起作用。更标准的方法是
while(<FILE>)
{
if(/$expression/) { print; }
}
或
像这样:
open FILE, "logfile.txt" or die $!;
print grep /09:(03|18|33|48):00/, <FILE>;
close FILE or warn $!;
像这样:
open FILE, "logfile.txt" or die $!;
print grep /09:(03|18|33|48):00/, <FILE>;
close FILE or warn $!;
谢谢,我想使用grep是一种更好的方法。再次感谢!谢谢,我想使用grep是一种更好的方法。再次感谢!