#linux #shell #unix #scripting #grep
#linux #оболочка #unix #сценарии #grep
Вопрос:
У меня есть команда ниже для вывода сценария оболочки в файл RestartLog.log, а затем для записи только «ошибки» в другой файл RestartLog_ERROR.log.
sudo ./DailyRestart.sh |sudo tee /RestartLog.log |grep ERROR | sudo tee /RestartLog_ERROR.log
У меня две проблемы
- Проблема 1: мне нужно добавить еще один файл «RestartLog_WARNING.log» для «предупреждения» вместе с «ошибкой», возможно ли это
- Проблема 2: В настоящее время ошибка выводится только на консоль, мне нужен полный вывод на консоль, а не вывод ошибок
Пожалуйста, помогите мне исправить обе проблемы
Ответ №1:
Через ваши каналы проходит только стандартный вывод. Если вам также необходимо иметь STDERR, вам нужно сначала перенаправить его на стандартный вывод:
sudo ./DailyRestart.sh 2>amp;1 | ...
Ответ №2:
Awk, возможно, лучший вариант для этого:
./DailyRestart.sh | awk '/Warning/ { print $0 >> "RestartLog_WARNING.log" } /ERROR/ { print $0 >> "RestartLog_ERROR.log" }1'
Найдите строки, содержащие «Предупреждение», и распечатайте строку в файле RestartLog_WARNING.log. Найдите строки, содержащие «ОШИБКА», и распечатайте строку в файле RestartLog_ERROR.log. Выведите все строки на экран с помощью 1.