как игнорировать предупреждения зайти в stderr - PullRequest
0 голосов
/ 09 июля 2019

Я запускаю команду и хочу просто получить ошибки в файле 100 stderr, а не в предупреждениях

➜  ~ pip2 install 0wned 2> error.txt 

Collecting 0wned
  Using cached https://files.pythonhosted.org/packages/85/fb/af45132a70fa67b7a40383066e284182ae649ce5c2a7839c06da51641a43/0wned-0.6.0-py2.py3-none-any.whl
Installing collected packages: 0wned

➜  ~ cat error.txt 

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/0wned-0.6.0.dist-info'
Consider using the `--user` option or check the permissions.

Я хочу просто получить ошибки в error.txt, а не предупреждения.

Я хочу этот вывод:

➜  ~ cat error.txt

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/0wned-0.6.0.dist-info'
Consider using the `--user` option or check the permissions.

1 Ответ

2 голосов
/ 09 июля 2019

Вы можете отфильтровать stderr, если хотите:

 pip2 install 0wned 2> >( grep ERROR > only-errors.txt)

Объяснение:

 2> >( command )

Перенаправить поток stderr на command

grepv ERROR > only-errors.txt

Копирует строки, содержащие ERROR, в файл only-errors.txt


Если вы хотите сохранить копию всех сообщений об ошибках, вы можете добавить tee:

 pip2 install 0wned 2> >( tee all.txt |  grep ERROR > only-errors.txt)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...