Я пытаюсь получить значение, мне нужны только последние дата и время

Это awkспособ.

awk -v RS=\" '/@/' infile.txt 

Вышеупомянутое верно, когда вы заключаете поля в кавычки, иначе у вас должен быть RS с несколькими RecordSeperators. как RS='[[:blank:]]*:'по вашему образцу в вашем комментарии.

-1
26.09.2019, 05:03
1 ответ

Без полных фактических данных этот ответ основан на догадках.

Я предполагаю, что

  • ваши имена файлов не содержат скобок([]
  • ваши данные всегда содержат отметку времени в скобках в начале строки и

Вы можете опубликовать -обработку своего вывода с помощьюsed
(Изменить :Изменено регулярное выражение, чтобы поймать первую группу в скобках, если их больше.)

grep -ER "stopped" ems_rpt1/SystemOut.log | tail -1 | sed 's/[^[]*\(\[[^]]*\]\).*/\1/'

Примечание. :Вы используете параметр -E, который означает «Сопоставление с использованием расширенных регулярных выражений». В вашем примере используется только простая строка, поэтому вы можете использовать параметр -Fвместо -E, что будет означать «Сопоставление с использованием фиксированных строк».

0
28.01.2020, 05:12

Теги

Похожие вопросы