我想编写一个采用CSV文件的脚本,删除其第一行并创建一个新的输出csv文件。如何复制CSV文件,但跳过第一行?
这是我的代码:
use Text::CSV_XS;
use strict;
use warnings;
my $csv = Text::CSV_XS->new({sep_char => ','});
my $file = $ARGV[0];
open(my $data, '<', $file) or die "Could not open '$file'\n";
my $csvout = Text::CSV_XS->new({binary => 1, eol => $/});
open my $OUTPUT, '>', "file.csv" or die "Can't able to open file.csv\n";
my $tmp = 0;
while (my $line = <$data>) {
# if ($tmp==0)
# {
# $tmp=1;
# next;
# }
chomp $line;
if ($csv->parse($line)) {
my @fields = $csv->fields();
$csvout->print($OUTPUT, \@fields);
} else {
warn "Line could not be parsed: $line\n";
}
}
在perl的命令行我写的:c:\test.pl csv.csv
,它不创造file.csv
输出,但是当我双击它脚本创建一个空白的CSV文件。我究竟做错了什么?
你的bash的行可能不会对@ user1526112工作,因为他不幸似乎没有被使用unixoid系统。 'perl -ne'print $ _ if $ x ++;'' INFILE。csv'应该可以做到。我不太了解“cmd.exe”,但追加'> outfile.csv'可能会将输出放到您想要的位置。 – amon 2012-07-14 21:58:57