我有简单的简单CSV文件如下(该示例为3列和4行):
A , B , C
A , ”B,C” , D
“A,B” , C , D
A , B , ”C,D”
如何创建我可以输入列和行号的脚本,然后打印回内容?
请注意!引号之间的逗号作为参数而不是分隔符..
编辑: 通缉输出: 对于参数:1,1(col,row)给定的答案是:A 对于参数:2,2(col,row)给定的答案是:B,C 对于参数:1,3(col,row)给定的答案将是:A,B 对于参数:3,3(col,row)给出的答案是:D
先谢谢
答案 0 :(得分:0)
a.pl
:
#!/usr/bin/perl
use strict;
use warnings;
use Text::CSV_XS qw( );
my $row_num = shift;
my $col_num = shift;
my $csv = Text::CSV_XS->new({ binary => 1, auto_diag => 1 });
while (my $row = $csv->getline(\*ARGV)) {
next if --$row_num;
print($row->[$col_num-1], "\n");
last;
}
a.csv
:(您发布的内容不是有效的CSV,但Text :: CSV_XS可能会使用正确的选项处理它。)
A,B,C
A,"B,C",D
"A,B",C,D
A,B,"C,D"
输出:
$ ./a.pl 1 1 a.csv
A
$ ./a.pl 2 2 a.csv
B,C
$ ./a.pl 3 1 a.csv
A,B
$ ./a.pl 3 3 a.csv
D