我有以下格式的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失败。
答案 0 :(得分:2)
如果是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 :(得分:1)
你可以这样做:
perl -ane '@F == 3 && print "http://$F[1]\n"' file.txt