如何为数据文件中的特定字段添加单独的分隔符-Perl
我目前有一个prep,它接受一个csv文件,单行数据,多个字段用逗号分隔。然后输出一个以管道分隔的文件。然而,我的问题是,对于数据中的某个字段,我现在需要用“-”分隔 这就是我现在拥有的如何为数据文件中的特定字段添加单独的分隔符-Perl,perl,Perl,我目前有一个prep,它接受一个csv文件,单行数据,多个字段用逗号分隔。然后输出一个以管道分隔的文件。然而,我的问题是,对于数据中的某个字段,我现在需要用“-”分隔 这就是我现在拥有的 $line = $_; $line =~ s/\,/\|/g; my @field = split(/\|-/, $line); 非常感谢您的帮助。很抱歉,如果我对此也有点含糊不清。您可以使用以下方法来使用多个清除器(请注意,它存储在散列中而不是数组中);例10 所以对于你的情况,
$line = $_;
$line =~ s/\,/\|/g;
my @field = split(/\|-/, $line);
非常感谢您的帮助。很抱歉,如果我对此也有点含糊不清。您可以使用以下方法来使用多个清除器(请注意,它存储在
散列中而不是数组中);例10
所以对于你的情况,它看起来像
my %field = split(/[\|-]/, $line);
除此之外,您可以随时嵌套您的拆分并执行以下操作
my @field = split(/\|/, $line);
my @newField = split(/-/, $field[0]);
解析CSV并不像您想象的那么简单,因此使用CPAN模块来完成此任务更安全,如。此模块允许配置分隔符字符。例如:
my $parser = Parse::CSV->new(
file => 'my_data.csv',
sep_char => ';'
);
while ( my $array_ref = $parser->fetch ) {
# Do something...
}
发布CSV文件中的样本数据将很有帮助。AC123,ABC ACC,666123456789987654321,J BLOGGS先生和H BLOGGS女士RE-DAVID BLOGGS,,,,2013年3月1日
my $parser = Parse::CSV->new(
file => 'my_data.csv',
sep_char => ';'
);
while ( my $array_ref = $parser->fetch ) {
# Do something...
}