1

私はperlが初めてです。perl スクリプトを使用して解析する必要があるファイルがあります。

ファイルの形式は次のとおりです。

05\/26\/2013 06:09:47 \-0700 - AUTHN_SUCCESS - GET - ddsbcggio_ac  - 200.12.33.44 - abcweb.eegeserv.com\/abcweb\/abcwebInitialize.do?PORT=SPQ  - uid=radash@abc.com\,ou=People\,o=zeb.com - 06:09:47 - http - uizweb_zam -  - 2uid=bolched@abc.com
05\/26\/2013 06:09:48 \-0700 - AUTHN_SUCCESS - GET - ddsbcggio_ac  - 200.12.33.44 - abcweb.eegeserv.com\/abcweb\/abcwebInitialize.do?PORT=SPQ  - uid=radash2s@abc.com\,ou=People\,o=zeb.com - 06:09:48 - http - uizweb_zam -  - 2uid=bolchedssd@abc.com
05\/26\/2013 06:09:49 \-0700 - AUTHN_SUCCESS - GET - ddsbcggio_ac  - 200.12.33.43 - abcweb.eegeserv.com\/abcweb\/abcwebInitialize.do?PORT=SPQ  - uid=sjhsjdh@abc.com\,ou=People\,o=zeb.com - 06:09:49 - http - uizweb_zam -  - 2uid=kjsdsdjhjsh@abc.com

ファイルから、次のようなものを取得したい:

05/26/2013 06:09:49  and uid=radash@abc.com,ou=People,o=zeb.com

各行から。

split() を試してみましたが、うまく取得できません。

助けてください

4

5 に答える 5

1

スプリット付きのシンプルなスクリプト

my $IP_FILE=$ARGV[0];
open(IP_FILE,$IP_FILE) || die "Unable to open file...";
while(<IP_FILE>)
{
    chomp;
    my @vals = split("-");
    $vals[0] =~ s/\\//g;
    $vals[7] =~ s/\\//g;
    printf("%s %s\n",$vals[0],$vals[7]);
}
close(IP_FILE);
于 2013-05-29T05:58:07.477 に答える
1
perl -ape '$_ = "$F[0] $F[1]  and $F[14]\n"; s|\\||g;' file
于 2013-05-29T06:13:02.213 に答える
1
 #open file 
 open(FILE, "FILENAME.txt")  || die "Can't open file";

 # read file into an array 
 @data = <FILE>;
 close(FILE);
 foreach $line(@data) {

 @output = split / /, $line;
 $output[0] =~ s/\\//g;
 print "$output[0] $output[1] and $output[16]\n";
 }

または、後で使用するためにプッシュすることもできます。

 #open file 
 open(FILE, "FILENAME.txt")  || die "Can't open file";

 # read file into an array 
 @data = <FILE>;
 close(FILE);
 foreach $line(@data) {

 @output = split / /, $line;
 $output[0] =~ s/\\//g;
 push @result, "$output[0] $output[1] and $output[16]\n";
 }
 print @result;

ファイルのデータがファイル内の他の場所に移動すると、誤った結果が返されるため、あまりきれいなコードではありませんが、これは機能し、分割がどのように機能するかがわかります。

リンクに関するご質問について。これは初心者向けの優れた電子ブックです。

  http://bookboon.com/en/perl-for-beginners-ebook
于 2013-05-29T06:25:03.503 に答える