2011-02-02 49 views
-2

您好所有我有xyz.txt將該具有以下信息文件我如何存儲10秒內文件的內容在Perl

69013 1-3039-1 REGISTER 

69013 1-3039-1 100 


69013 1-3039-1 401 

69013 1-3039-2 REGISTER 

69013 1-3039-2 100 

69013 2-3039-1 REGISTER 

69013 3-3039-1 REGISTER 

69013 4-3039-1 REGISTER 

..................... 
..................... 

69023 213-3039-2 REGISTER 

69023 193-3039-2 100 

69023 193-3039-2 401 

69023 222-3039-1 REGISTER 

69023 177-3039-2 100 

69024 177-3039-2 401 

69024 214-3039-1 100 

69024 214-3039-1 401 

69024 214-3039-2 REGISTER 

其中第一coloumn是秒

我想存儲第二coloumn每個不同的第三顏色

回答

0

這聽起來不像我的想法問你想問什麼,我想你想要的。因此,這是一個解決方案,以獲得列2中列出的所有值。如果這不是您的意圖,我表示歉意。

open(my $fh, '<', '/path/to/xyz.txt') or die "Did not open $!"; 
my %hash; 

while (<$fh>) { 
    next unless /\S/; 
    my (undef, $col2, $col3) = split ' ', $_, 3; 
    next unless $col3; 
    $hash{ $col3 }{ $col2 }++; 
} 

close $fh; 

此時,%hash將包含包含在第二作爲鍵用連字符連接的數字散列值。

這將打印出值。

foreach my $key (sort keys %hash) { 
    my $h = $hash{ $key }; 
    foreach my $k (sort keys %$h) { 
     print "$key, $k\n"; 
    } 
} 
+0

感謝所有人 – singhabsk 2011-02-05 03:41:51

1

您的需求就是我不太清楚,但這裏是存儲第二欄爲每個不同的第三列的腳本:

#!/usr/bin/perl 
use 5.10.1; 
use strict; 
use warnings; 
use Data::Dumper; 

my %result; 
while (<DATA>) { 
    chomp; 
    next if /^\s*$/; 
    my @cols = split; 
    push @{$result{$cols[2]}}, $cols[1]; 
} 
say Dumper \%result; 


__DATA__ 
69013 1-3039-1 REGISTER 

69013 1-3039-1 100 


69013 1-3039-1 401 

69013 1-3039-2 REGISTER 

69013 1-3039-2 100 

69013 2-3039-1 REGISTER 

69013 3-3039-1 REGISTER 

69013 4-3039-1 REGISTER 

69023 213-3039-2 REGISTER 

69023 193-3039-2 100 

69023 193-3039-2 401 

69023 222-3039-1 REGISTER 

69023 177-3039-2 100 

69024 177-3039-2 401 

69024 214-3039-1 100 

69024 214-3039-1 401 

69024 214-3039-2 REGISTER 

輸出:

$VAR1 = { 
      '401' => [ 
        '1-3039-1', 
        '193-3039-2', 
        '177-3039-2', 
        '214-3039-1' 
        ], 
      'REGISTER' => [ 
          '1-3039-1', 
          '1-3039-2', 
          '2-3039-1', 
          '3-3039-1', 
          '4-3039-1', 
          '213-3039-2', 
          '222-3039-1', 
          '214-3039-2' 
         ], 
      '100' => [ 
        '1-3039-1', 
        '1-3039-2', 
        '193-3039-2', 
        '177-3039-2', 
        '214-3039-1' 
        ] 
     }; 
相關問題