我想編寫一個採用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