Я запускаю команду и хочу просто получать ошибки в файле 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.
это не всегда так, предупреждение может прийти после сообщения об ошибке, и я думаю, что это грязный способ: X я не могу понять, почему предупреждения должны поступать в stderr!
Вы слишком много вчитываетесь в имена. Цель stderr — предоставить альтернативный канал вывода информации, отличной от фактических результатов программ, чтобы stdout был свободен от информационных и диагностических сообщений. Различие между сообщениями об ошибках, предупреждающими сообщениями и диагностикой других видов довольно условно, и stderr — правильное место для всех из них.





Вы можете отфильтровать 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)
Может
grep '^ERROR:' error.txt?