Perl csv 追加列问题



如何使用perl在csv文件的末尾附加一个额外的列?我无法使用Text::CSV因为我使用的是 5.8.8 版,并且此处未安装该软件包。我无法升级到较新的 perl 版本。我首先将几个较小的 CSV 文件合并为一个,然后我需要为最终文件添加一个额外的列。我已将最终文件的句柄声明为 SUB。

这是我的代码片段:

my $file = "/tmp/Sub_test_".$row.".csv";
        # the $row is in a loop..so it comes as 1,2 etc.
        open my $fh, "<", $file;
        <$fh> unless $file eq "/tmp/Sub_test_1.csv";
        print SUB while <$fh>;

我需要添加一个带有标题"count"的额外列,该值应$row.

它只是您要添加的行数吗?

这会将 ,count 附加到第一行,将 ,$.(这是行号)附加到其余部分。

然后尝试

$ perl -e 'while (<>){chomp;if ($. ==1){print "$_,countn"} else {print "$_,".($.-1)."n"}}' your.csv

tmp.csv
one,two,three
4,5,6
2,3,4
6,7,1
$ perl -e 'while (<>){chomp;if ($. ==1){print "$_,countn"} else {print "$_,".($.-1)."n"}}' tmp.csv
one,two,three,count
4,5,6,1
2,3,4,2
6,7,1,3

最新更新