通过删除PERL中的某些列,从另一个CSV文件创建CSV文件

通过删除PERL中的某些列,从另一个CSV文件创建CSV文件,perl,csv,Perl,Csv,您好,我正在尝试读取一个csv文件,比如说first.csv,然后选择其中的一些列,并将这些列写入一个新的csv文件new.csv。 这是我的密码:- my $csv = Text::CSV->new(); open (my $fh , "first.csv") or die "cannot open $file\n"; open (my $mh , "new.csv") or die "cannot open file $!\n"; while (my $ro

您好,我正在尝试读取一个csv文件,比如说
first.csv
,然后选择其中的一些列,并将这些列写入一个新的csv文件
new.csv
。 这是我的密码:-

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

    open (my $fh , "first.csv") or die "cannot open $file\n";
    open (my $mh , "new.csv") or die "cannot open file $!\n";
    while (my $row = $csv->getline($fh)){

      my $id = $row->[0]; 
      my $words = $row->[2];
      my $bits = $row->[3];

    }
    close $fh;
在此之后,我不知道如何只将这些
$id、$words、$bits
写入
new.csv
。 谁能帮我做这件事

你就不能这样做吗:(未经测试)

从文件中:

$status = $csv->print ($io, $colref); # Write an array of fields
                                      # immediately to a file $io

我不知道perl,但是CSV文件在后续列之间有逗号。所以,你可能只需要写$id+“,“+$words+”,“+$bits+”\n”就可以了。CSV的格式很简单:只需打印:
print qq{“$id”,“$words”,“$bits”\n}
$status = $csv->print ($io, $colref); # Write an array of fields
                                      # immediately to a file $io
perl -MText::CSV -e'my $csv = Text::CSV->new();while(my $row = $csv->getline(ARGV)){$csv->print(STDOUT, [@$row[0,2,3]])}' first.csv > new.csv