Как игнорировать предупреждения в stderr

Я запускаю команду и хочу просто получать ошибки в файле ‍‍‍‍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.

Может grep '^ERROR:' error.txt?

Bodo 09.07.2019 13:31

это не всегда так, предупреждение может прийти после сообщения об ошибке, и я думаю, что это грязный способ: X я не могу понять, почему предупреждения должны поступать в stderr!

behzad mehrabi 09.07.2019 13:42

Вы слишком много вчитываетесь в имена. Цель stderr — предоставить альтернативный канал вывода информации, отличной от фактических результатов программ, чтобы stdout был свободен от информационных и диагностических сообщений. Различие между сообщениями об ошибках, предупреждающими сообщениями и диагностикой других видов довольно условно, и stderr — правильное место для всех из них.

John Bollinger 09.07.2019 13:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
434
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете отфильтровать 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)

Другие вопросы по теме