1

私は次のようなログファイルを持っています

field1 field2 field3 field4withvariablelength ... field5with .. ..

たとえば、perl正規表現を使用してフィールド5を抽出する方法はありますか?

「スペースで区切る」と「インデックス5をください」??

4

2 に答える 2

5

もちろん、splitを使用してスペースで区切ることができます。

my (@fields) = split /\s+/;
print $fields[4];

完全なテストスクリプトは次のとおりです。

#!/usr/bin/perl -w
use strict;

while (<DATA>) {
    my (@fields) = split /\s+/;
    print $fields[4];
}    


__DATA__
field1 field2 field3 field4withvariablelength... field5with...
于 2012-11-11T12:21:10.840 に答える
0

またはそう:

my $str = "field1 field2 field3 field4withvariablelength ... field5with...";
$str =~ m/field5(.*)$/i;
print $1; # type with...

あなたが他の分野に行かなければならない場合:

$str =~ m/\s+field4(.*)\s+/i;
print $1; # type withvariable...
于 2012-11-11T12:28:48.477 に答える