Это можно сделать с помощью редактора "sed" в стиле POSIX
sed -e '
:a
$q;N;y/\n/,/
s/,die$//;t
ba
' input_file
Способ:
Мы также можем использовать для этого Perl:
perl -lne '
push @A, $_ unless /^die$/;
print join ",", splice @A if /^die$/ || eof;
' input_file
Где мы накапливаем строки в массиве, пока не увидим строку "die". В этот момент мы соединяем содержимое массива с помощью запятой (и очищаем массив ).
Мы также можем проглотить файл, а затем вызвать Perl для получения результатов:
perl -lF'/^die\n/m' -0777nae 'print join ",", split /\n/ for @F' input_file
location /texts/ {
proxy_set_header...;
proxy_pass...;
location ~ \.txt$ {
root /path/to/root;
try_files $uri /texts/default.txt;
proxy_pass...;
}
}
location = /texts/default.txt {
root /path/to/root;
}
Обратите внимание на правильное регулярное выражение для оператора location
. Операторы proxy_set_header
будут унаследованы, но оператор proxy_pass
необходимо повторить во вложенном location
.
Оператор try_files
проверит существование файла и изменит его URI, если он не существует.
Файл по умолчанию имеет выделенный location
, чтобы файл можно было обслуживать как статический файл из правильного корня.
Путь к файлу создается путем объединения значения root
с URI, поэтому файл /texts/default.txt
находится по адресу /path/to/root/texts/default.txt
.