- 論壇徽章:
- 3
|
本帖最后由 mcshell 于 2014-03-17 16:39 編輯
- use strict;
- use warnings;
- while (<DATA>) {
- chomp;
- my $h;
- /^(?:((?:\d{1,3}\.){3}\d{1,3})|[^|]*)\|(?:([\w.]+\@[\w.]+)|[^|]*)\|(?:(\S+)|[^|]*)\|(?:(\d+)|[^|]*)/;
- push @{ $h->{$_} }, '$1' unless $1;
- push @{ $h->{$_} }, '$2' unless $2;
- push @{ $h->{$_} }, '$3' unless $3;
- push @{ $h->{$_} }, '$4' unless $4;
- print "$_ ",join "",@{$h->{$_}},"\n" for keys %$h;
- }
- __DATA__
- 192.168.11.11|ct@mycdma.cn|www.baidu.com|21
- 192.168.11.|ct@mycdma.cn|dddd|21
- 192.168.11.|ct@||22
- 192.168.11.12|ct@||22
復(fù)制代碼 output
192.168.11.|ct@mycdma.cn|dddd|21 $1
192.168.11.|ct@||22 $1$2$3
192.168.11.12|ct@||22 $2$3
|
|