Parse Column информация из основ CSV - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть CSV-файл в следующем формате (открыть в Excel). Пример:

Column A      Column B    Column C

192.168.1.100 172.16.16.1  WWW
192.168.1.100 172.16.16.2  abc
192.168.1.100 172.16.16.3  def

Я пишу Perl-программу, которая получит информацию из столбца B и преобразует ее в URL-адрес.

Я перепробовал много методов, таких как split, но не смог заставить работать ни один из них.


my $file = 'file.csv';

my $csv = Text::CSV->new(); while ( my $row = $csv->getline( $fh ) )

Когда я искал код для поиска в Google.Приведенный выше код аналогичен коду, который я использовал ранее, но в итоге выдал некоторые ошибки, которые я не смог исправить.

Вместо этого я использую следующий код:

open(IN, "LogFile1.csv");

while() { ... }

Внутри while {} Я ввел коды, которые удаляют повторяющиеся строки и выполняют преобразование в URL.Он анализирует всю информацию из файла CSV.Я попытался удалить все столбцы, кроме столбца B, и коды отлично работают при преобразовании URL.Это означает, что при наличии 3 столбцов информации преобразование IP в URL завершается неудачей.

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Если это файл CSV, вы можете использовать Text :: CSV для анализа данных. Что-то вроде:

#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV;

my $file = 'file.csv';

my $csv = Text::CSV->new();

open my $fh, "<", $file or die $!;

while ( my $row = $csv->getline( $fh ) ) {
  print 'http://' . $row->[1] . "\n";
}

close $fh;
1 голос
/ 23 декабря 2010

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

perl -ane '@F == 3 && print "http://$F[1]\n"' file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...