我对Perl很新。我试图逐行读取文件,在每一行中搜索特定的模式。如果找到模式,那么我需要在不同的变量中存储同一行的不同部分。例如,假设这些是文件中的行 -
01 Started Job 1 Calculation
02 Started Job 2 Publish
03 Completed Job 1 Calculation
04 Started Job 3 Upload
05 Completed Job 2 Publish
我在每行搜索“开始工作”字样。如果找到,我需要存储以字符串开头的作业的以下作业编号和名称,并将记录ID(行中的第一个单词)存储到不同的字符串中。到目前为止,这是我的代码 -
while (<READLOG>)
{
if (/Started Job/)
{
my @words = split(" ",$_);
my $recordID = $words[0];
my $Job = $words[3] . " " . $words[4];
}
}
这暂时有用,但我想知道是否有更好的方法可以做到这一点?喜欢存储“开始工作”后面的所有单词吗?
非常感谢任何帮助。谢谢!
答案 0 :(得分:3)
你应该多看一下正则表达式。在“开始工作”之后存储单词可以通过使用匹配组来完成,即/Started Job(.*)$/
。然后,您将在$1
中找到该行的其余部分。