Экранирование специальных символов в grep regex

Я пытаюсь запустить регулярное выражение grep в файле, из которого мне нужно исключить строки, где появляются «00» и «0». Я придумал это выражение:

grep -a -E \ "stored \" \: \ \ "\ * 123 \ * (?! 00) [0-9] {2,5} \ # \" $ filename

Но когда я пытаюсь запустить его в bash, У меня есть другой сценарий, когда мне нужно перенаправить URL-адрес на основе соответствующей строки с помощью proxy_pass. то есть: http: // xx ....

Я установил обратный прокси-сервер с обратным прокси-сервером Nginx, он работает нормально, как и ожидалось. Мы развернули веб-приложение Python (использует Pyramid) в Apache (httpd) с помощью mod_wsgi. После запуска службы Apache следующая ошибка (из журнала Apache) возникает, когда мы делаем http-запрос к ...

Я развернул веб-приложение Python (использует Pyramid) в Apache (httpd) с помощью mod_wsgi.

] После запуска службы Apache ошибка, указанная ниже (из журнала Apache), возникает, когда мы делаем HTTP-запрос к веб-приложению ...

[Mon Feb 06 16:38:55.980119 2017] [wsgi:error] [pid 16031] [remote 172.16.13.1:204] mod_wsgi (pid=16031): Target WSGI script '/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi' cannot be loaded as Python module.
[Mon Feb 06 16:38:55.980205 2017] [wsgi:error] [pid 16031] [remote 172.16.13.1:204] mod_wsgi (pid=16031): Exception occurred processing WSGI script '/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi'.
Traceback (most recent call last):
  File "/usr/local/lb/ve32/src/LBGenerator/lbgenerator.wsgi", line 1, in <module>
    from pyramid.paster import get_app
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/paster.py", line 10, in <module>
    from pyramid.scripting import prepare
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/scripting.py", line 1, in <module>
    from pyramid.config import global_registries
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/config/__init__.py", line 30, in <module>
    from pyramid.exceptions import (
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/exceptions.py", line 1, in <module>
    from pyramid.httpexceptions import (
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/httpexceptions.py", line 138, in <module>
    from pyramid.response import Response
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/response.py", line 23, in <module>
    init_mimetypes(mimetypes)
  File "/usr/local/lb/ve32/lib/python3.2/site-packages/pyramid-1.5.1-py3.2.egg/pyramid/response.py", line 16, in init_mimetypes
    mimetypes.init()
  File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 351, in init
    db.read(file)
  File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 203, in read
    self.readfp(fp, strict)
  File "/usr/local/lb/py32/lib/python3.2/mimetypes.py", line 214, in readfp
    line = fp.readline()
  File "/usr/local/lb/py32/lib/python3.2/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 2727: ordinal not in range(128)

Это веб-приложение Python отлично работает во всех этих дистрибутивах: Ubuntu 14.04, Debian 8, RedHat 6 , CentOS 6, Suse 12 и openSUSE 13, но не в CentOS 7 ... = [

Мы используем «Python 3.2.2», «mod_wsgi 4.3.2» и «Apache 2.4.6» в «CentOS 7 дюймов. Веб-приложение было построено на основе Pyramid Web Framework ( http: //docs.pylonsproject. org / projects / pyramid / en / latest / ).

Это довольно распространенная ошибка! Пока я не нашел способа получить дополнительную информацию об этой ошибке.

Мы испробовали все, чтобы решить эту проблему, и мы просто не знаем, почему она возникает ... = [

Пожалуйста, помогите мне!

1
задан 9 February 2017 в 14:45
1 ответ

Проблема возникает из-за того, что файл /etc/mime.types CentOS 7 имеет символ «³» (строка «приложение /vnd.geocube+xml g3 g³ "), который недопустим для ascii (не расширен).

Чтобы понять это, мне пришлось внести некоторые изменения в свой Python 3.2.2 и перезагрузить приложение.

Решение - удалить символ «³» или любой другой недопустимый (ascii) символ!

@MichaelHampton

Спасибо!

2
ответ дан 3 December 2019 в 20:28

Теги

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