Сопоставление с шаблоном grep

Есть несколько способов, которыми я могу думать перенаправления может быть запущено

на стороне сервера через HTTP

сервер может вызвать это, отправив HTTP-ответ, который содержит статус ответа 302 или 301 и заголовок Местоположение: http://www.344.555.122.45.

Я бы проверил это с помощью curl -i 344.555.122.45.
где -i включает ответ заголовка. Если вы получаете это с сервера, то я бы посмотрел конфигурацию виртуального сервера nginx для домена/хоста, если его там нет, то я бы посмотрел в веб-приложение, чтобы увидеть, настраивает ли это перенаправление.

в HTML

Существует также способ сделать это через HTML-код, используя элемент с атрибутом http-equiv:

<meta http-equiv="refresh" content="0; url=http://www.344.555.122.45/" />

Хотя по моему опыту это одна из наименее вероятных причин.

Конфигурация на стороне клиента вызывает это

, как указано в комментариях

1
08.08.2017, 05:51
2 ответа

Вы наблюдали выход из кода 1, как это:

$ echo "ACI123456777-001-20170701.pdf" | grep -e "^ACI([0-9]{9})-([0-9]{3})-([0-9]{8}).pdf$"; echo code=$?
code=1

Чтобы он работал так, как вы ожидаете, вам нужна опция -E `:

$ echo "ACI123456777-001-20170701.pdf" | grep -Ee "^ACI([0-9]{9})-([0-9]{3})-([0-9]{8}).pdf$"; echo code=$?
ACI123456777-001-20170701.pdf
code=0

-Eвключает расширенные функции регулярных выражений.

Если вы действительно хотите использовать базовое регулярное выражение, которое используется по умолчанию, вам нужно добавить несколько escape-последовательности:

$ echo "ACI123456777-001-20170701.pdf" | grep -e "^ACI\([0-9]\{9\}\)-\([0-9]\{3\}\)-\([0-9]\{8\}\).pdf$"; echo code=$?
ACI123456777-001-20170701.pdf
code=0

Значение-e

Параметр grep -eпредшествует шаблону регулярного выражения:

$ echo "ACI123456777-001-20170701.pdf" | grep -e '^ACI'
ACI123456777-001-20170701.pdf

Если есть только один шаблон, то grep не нужен -eи его можно опустить:

$ echo "ACI123456777-001-20170701.pdf" | grep '^ACI'
ACI123456777-001-20170701.pdf

Однако при наличии двух или более шаблонов необходимо -e:

$ echo "ACI123456777-001-20170701.pdf" | grep -e '^ACI' -e 'pdf'
ACI123456777-001-20170701.pdf
1
28.01.2020, 00:51
echo "ACI123456777-001-20170701.pdf"  | grep -q "ACI[0-9]\{9\}-[0-9]\{3\}-[0-9]\{8\}.pdf"
echo $?
-1
28.01.2020, 00:51

Теги

Похожие вопросы