2010-12-09 2 views
0

Вот пример файла. Предположим, я хочу проанализировать значения шестого столбца и сохранить их в массиве.Как сохранить значения из столбца (в текстовом файле с разделителями табуляции) в Perl

 
42 test.example.com activityViewer/index.html 8a699fe62751d158dad57f6b9a3ae5a4 1291836592 4.1938788890839 
4 test.example.com activityViewer/index.html ca0317343500ac35d46ca6b6bfe5918d 1291836592 4.224240064621 
38 test.example.com activityViewer/index.html 2a473f02e814896af9d20ad333dfd5c5 1291836592 4.2302849292755 
9 test.example.com activityViewer/index.html ac3942ad87fb0ce3efb034cdfc3d4c79 1291836592 4.2612450122833 
31 test.example.com activityViewer/index.html 3497d90401e18483119b60a378bd8d27 1291836592 4.3139219284058 
25 test.example.com activityViewer/index.html 377b12a86f6bbde33dc89e94cacd5246 1291836592 27.90621805191 
3 test.example.com activityViewer/index.html 493bf2ba361b77d09305a14e9253322d 1291836592 29.722389936447 

ответ

5

Вы можете сделать:

use strict; 

my @arr;  
while(<>) { 
     my @tmp = split/\t/; 
     push @arr,$tmp[5]; 
} 

и вызывать сценарий как:

$ perl myprg.pl file 

See it

В качестве альтернативы можно рассматривать файл как CSV с вкладки в качестве разделителя и использовать подходящий модуль анализатора CSV.

0

Похоже, что Is there a Perl module for parsing columnar text? имеет то, что вы ищете.

+0

похож, но я не имеет «сложенные» колонки, мой пример на самом деле прост по сравнению с ссылкой вы предложили, но спасибо я тоже смотрел на это – kamal 2010-12-09 14:49:25

0

Split будет самым простым способом

my @ary; 
foreach my $line (split(/\n/, $full_text)) { 
    my @l = split(/\t/, $line); 
    push @ary, $l[5] 
} 
+0

не делать slurp willy-nilly. – 2010-12-09 16:19:58

Смежные вопросы