1

私はPerlにかなり慣れていません。ファイルを 1 行ずつ読み込んで、各行で特定のパターンを検索しようとしています。パターンが見つかった場合は、同じ行のさまざまな部分をさまざまな変数に格納する必要があります。たとえば、これらがファイル内の行であるとします-

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

各行で「Started Job」という単語を検索しています。見つかった場合は、次のジョブ番号と開始したジョブの名前を文字列に保存し、レコード ID (行の最初の単語) を別の文字列に保存する必要があります。これまでのところ、これは私が持っているコードです-

while (<READLOG>) 
  {
         if (/Started Job/)
         {
               my @words = split(" ",$_);
               my $recordID = $words[0];
               my $Job = $words[3] . " " . $words[4];
         } 
  } 

これは今のところ機能しますが、これを行うより良い方法があるかどうか知りたいですか? 「Started Job」に続くすべての単語を保存するように?

どんな助けでも大歓迎です。ありがとう !

4

1 に答える 1

3

正規表現をもう少し調べる必要があります。「Started job」の後に単語を保存するには、一致するグループを使用し/Started Job(.*)$/ます。残りの行は にあり$1ます。

于 2013-10-02T05:23:14.553 に答える