добавьте #!/usr/bin/env python
в начало вашего скрипта или вызовите свой скрипт, используя python myscript.py
Есть ли причина, по которой вы хотите, чтобы последнее поле было указано? «+» Не имеет особого значения в CSV, поэтому не нуждается в кавычках и пустом поле. Text :: CSV_XS поддерживает цитирование пустых полей или цитирование всех полей, но еще не цитирование всех нечисловых полей. Основываясь на ответе Чоробы, который позволяет последнему полю быть «яблоко + яблоко + апельсин», который не определен в ОП, если это необходимо, я бы написал это так:
use 5.14.1;
use warnings;
use Text::CSV_XS qw( csv );
use Data::Peek;
chomp (my @fruits = do { local @ARGV = "file.txt"; <> });
my %order;
@order{@fruits} = 0 .. $#fruits;
my $regex = join "|", sort { length $b <=> length $a } @fruits;
csv (
in => "data1.csv",
eol => "\n",
quote_empty => 1,
on_in => sub {
push @{ Есть ли причина, по которой вы хотите, чтобы последнее поле было указано? «+» Не имеет особого значения в CSV, поэтому не нуждается в кавычках и пустом поле. Text :: CSV_XS поддерживает цитирование пустых полей или цитирование всех полей, но еще не цитирование всех нечисловых полей. Основываясь на ответе Чоробы, который позволяет последнему полю быть «яблоко + яблоко + апельсин», который не определен в ОП, если это необходимо, я бы написал это так:
[110][1]}, join "+" =>
sort { $order{$a} <=> $order{$b} }
keys %{{map { Есть ли причина, по которой вы хотите, чтобы последнее поле было указано? «+» Не имеет особого значения в CSV, поэтому не нуждается в кавычках и пустом поле. Text :: CSV_XS поддерживает цитирование пустых полей или цитирование всех полей, но еще не цитирование всех нечисловых полей. Основываясь на ответе Чоробы, который позволяет последнему полю быть «яблоко + яблоко + апельсин», который не определен в ОП, если это необходимо, я бы написал это так:
[110] => 1 }
( Есть ли причина, по которой вы хотите, чтобы последнее поле было указано? «+» Не имеет особого значения в CSV, поэтому не нуждается в кавычках и пустом поле. Text :: CSV_XS поддерживает цитирование пустых полей или цитирование всех полей, но еще не цитирование всех нечисловых полей. Основываясь на ответе Чоробы, который позволяет последнему полю быть «яблоко + яблоко + апельсин», который не определен в ОП, если это необходимо, я бы написал это так:
[110][1][1] =~ m/\b($regex)\b/g)}};
},
);
Perl на помощь!
#!/usr/bin/perl
use warnings;
use strict;
use Text::CSV_XS qw{ csv };
open my $f1, '<', 'file.txt' or die $!;
my @fruits;
chomp, push @fruits, Perl на помощь!
[110] К сожалению, Text :: CSV_XS не может заключить в кавычки последнее поле, если оно не содержит специального символа (или без кавычек всех поля). Если же file.txt
не содержит двойных кавычек и запятых, вы можете легко их добавить:
perl ... | sed 's/,\([^,"]*\)$/,"\1"/'
while <$f1>;
my %order;
@order{@fruits} = 0 .. $#fruits;
my $regex = join '|', sort { length $b <=> length $a } @fruits;
csv(
in => 'data.csv1',
eol => "\n",
on_in => sub {
my @matches;
push @matches, $1 while Perl на помощь!
[110] К сожалению, Text :: CSV_XS не может заключить в кавычки последнее поле, если оно не содержит специального символа (или без кавычек всех поля). Если же file.txt
не содержит двойных кавычек и запятых, вы можете легко их добавить:
perl ... | sed 's/,\([^,"]*\)$/,"\1"/'
[1][1] =~ /\b($regex)\b/g;
push @{ Perl на помощь!
[110] К сожалению, Text :: CSV_XS не может заключить в кавычки последнее поле, если оно не содержит специального символа (или без кавычек всех поля). Если же file.txt
не содержит двойных кавычек и запятых, вы можете легко их добавить:
perl ... | sed 's/,\([^,"]*\)$/,"\1"/'
[1] }, join '+',
sort { $order{$a} <=> $order{$b} }
@matches;
},
);
К сожалению, Text :: CSV_XS не может заключить в кавычки последнее поле, если оно не содержит специального символа (или без кавычек всех поля). Если же file.txt
не содержит двойных кавычек и запятых, вы можете легко их добавить:
perl ... | sed 's/,\([^,"]*\)$/,"\1"/'