Я пытаюсь сделать вывод работы нескольких файлов журналов немного более удобным для Unix.Повторяя текст перед каждой строкой после grep и вырезаем Unix
Файлы журнала переходят из Web.log, являющегося самым старым, до самого Web.log.30. Я собираю job123 из этих файлов, а затем соединяюсь с новым grep, где он принимает только строки с сообщением Exit, что означает, что задание завершено. Затем я разрезал его в запятой, чтобы я печатал только временные метки, а не всю строку. Вот мой сценарий:
for file in `ls -tr Web.log*`; do grep job123 $file | grep Exit | cut -d "," -f1; done
который выводит мне временные метки, которые я хочу, в хронологическом порядке:
2015-06-17 21:07:00
2015-06-17 22:07:00
2015-06-17 23:07:00
2015-06-18 00:07:00
2015-06-18 01:07:00
2015-06-18 02:07:00
2015-06-18 03:07:00
Все, что я хочу сделать, это добавить эхо в начале каждой строки, говоря «Script job123 побежал: "так это будет выглядеть следующим образом:
Script job123 ran at: 2015-06-17 21:07:00
Script job123 ran at: 2015-06-17 22:07:00
Script job123 ran at: 2015-06-17 23:07:00
Script job123 ran at: 2015-06-18 00:07:00
Script job123 ran at: 2015-06-18 01:07:00
Script job123 ran at: 2015-06-18 02:07:00
Script job123 ran at: 2015-06-18 03:07:00
Как пользователь едва знает Unix, мне просто нужно, чтобы сделать это в качестве удобной, как можно прочитать. Я борюсь с эхом.
Также каждый из файлов журналов имеет длину около 25 МБ, поэтому серия труб может быть потребляемой в памяти, поэтому, если у кого-то есть предложения по ускорению процесса, это очень ценно.
Обратите внимание, что это на производственном сервере, поэтому установка других сценариев, таких как multigrep
, не может быть и речи. Я пытаюсь сделать это как однострочный скрипт, чтобы сделать использование более простым для пользователя.
В любом случае, я могу повторить этот текст в скрипте, который я сейчас использую? Я уже пробовал повторять его в несколько этапов, но не повезло.
спасибо.
вы можете трубы его в AWK , 'для файла в' ls -tr Web.log * '; do grep job123 $ file | Выход grep | cut -d "," -f1 | awk '{print "Работа скрипта123 запускалась по адресу:" $ 0}'; done – c4pone
Спасибо @ c4pone, ваше решение было самым быстрым! – iLuPa
no беспокойство мужчина. Рад, что смог помочь – c4pone