Измените разрыв
на последний
. то есть:
Должно быть:
rewrite ^/(.+)$ /index.php?p=$1 last;
Вместо:
rewrite ^(.+)$ /index.php?url=$1 break;
xargs printf '"%s", ' <file
... будет работать с данными вашего примера:
"string1", "string2", "string3", "....", "string12312",
Всегда можно было просто превратить его в массив JSON:
#!/usr/bin/env perl
use strict;
use warnings;
use JSON;
chomp ( my @data = <DATA> );
print to_json ( \@data );
__DATA__
string1
string2
string3
string12312
Или как однострочник:
perl -MJSON -e 'print to_json ( [map{s/\n//gr}<>] )'
Канал на stdin или указать имя файла (например, grep / awk и т. д.)
Оба вывода (последний при загрузке вашего примера):
["string1","string2","string3","string12312"]
Можно отформатировать его как «красивый» JSON с помощью print to_json (\ @data, {pretty => 1})
, который добавит перевод строки и отступ.
(этот лайнер выше основан на более новом perl, который вы могли установили. Если это не сработает: perl -MJSON -e 'chomp (@a = <>) ; print to_json (\ @a) '