Как использовать grep для двух отдельных файлов журналов? , в настоящее время выводится только в один файл журнала

#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.