0
我有一小段代码,我正在尝试修改。 我想要做的是将文件名输入到第三列。目前我几乎可以工作,但是我想从列中每个条目的末尾删除“.csv”。我也想给列标题“文件名”。Perl修改CSV文件
我希望“表1”上面显示“表2”之间的区别总结非常好,我想在这里做了修改。
我目前使用的是创建“表1”的代码如下:
#!/usr/bin/perl
use warnings;
use strict;
open M,"<mapcodelist.txt" or die "mapcodelist.txt $!";
my %m;
while(<M>){
my($k,$v)=split;
$v=~s/\./_/g;
$m{$k}=$v;
}
close M;
chdir "C:/Users/Stephen/Desktop/Database_Design/" or die $!;
@ARGV=<*.csv>;
$^I=".bak";
while(<>){
chomp;
$\=/^mass/?",filename$/": ",$ARGV$/";
print;
}
for(<*.csv>){
my $r;
($r=$_) =~ s/\w+_(\w+)(?=\.csv)/$1_$m{$1}/;
rename $_,$r or warn " rename $_,$r $!";
}
任何意见与这将是非常赞赏。
谢谢。
您现在有足够的信誉来添加图像。您也可以将示例数据添加为代码块。 – simbabque
感谢simbabque,按照您的建议修改了帖子。 –
请不要使用正则表达式来修改CSV行的内容。用Text :: CSV或Text :: CSV_XS等模块读取每一行,修改需要修改的字段,然后重新生成并重写CSV行。 –