Передайте свой вывод по каналу в следующий Perl:
жемчуг-ne 'мой @fields = разделил/\s/, $ _; foreach мой $input (@fields) {если (/^ (\d +).. (\d +) $/) {печатают $2-1 + 1, "\n"; }}'
То, что это делает, во-первых разделяется вход на пробелах (таким образом, Ваша первая строка должна работать). Это затем выполняет регулярное выражение на каждой записи для соответствия строке, которая только содержит два числа, разделенные.. - скобки помещают числа в 1$ и 2$.
Например: echo "20066898701..20066901700" | perl -ne 'my @fields = split /\s/, $_; foreach my $input (@fields) { if (/^(\d+)\.\.(\d+)$/) { print $2 - $1 + 1, "\n"; } }' 3000
Вам следует попытаться создать отдельное расположение для каждого расширения файла и использовать внутреннее перенаправление. Это будет примерно так:
location /ABC.txt {
add_header Content-Type text/plain;
rewrite /ABC last;
}
location /ABC.html {
add_header Content-Type text/html;
rewrite /ABC last;
}
location /ABC {
alias /var/www/ABC.txt
}
Я не обещаю, что это сработает, потому что я не тестировал его на реальном nginx.
nginx обрабатывает предложенный mimetype на основе URI. Я попробовал следующую комбинацию, и она работает:
root /usr/share/nginx/www;
default_type text/plain;
location = /abc.txt {
alias /usr/share/nginx/www/abc;
}
location /abc.html {
alias /usr/share/nginx/www/abc;
}