Đây là một cái gì đó mà bạn nhận được csv
- nếu dấu phân cách là một phần của trường, nó sẽ được trích dẫn. Điều đó đột nhiên làm cho nhiệm vụ phân tích cú pháp RẤT NHIỀU hơn, bởi vì bạn không thể phân tách trên một delim.
May mắn thay, nếu perl
là một tùy chọn, bạn có Text::CSV
mô-đun xử lý trường hợp này:
#!/usr/bin/env perl
use strict;
use warnings;
use Text::CSV;
my $csv = Text::CSV -> new ( { 'sep_char' => '|' } );
while ( my $row = $csv -> getline ( *STDIN ) ) {
print $row -> [1],"\n";
}
Có lẽ có thể ngưng tụ điều này thành một nội tuyến / có thể điều chỉnh được nếu bạn thích - đại loại như:
perl -MText::CSV -e 'print map { $_ -> [1] ."\n" } @{ Text::CSV -> new ( { 'sep_char' => '|' } ) -> getline_all ( *ARGV )};