Linux: корневая файловая система по сети (с аутентификацией)

Попробуйте это:

$ cat test.txt 
Jun  9 16:56:14 mailserver postfix ...
2017-06-04T06:59:36.984086+02:00 mailserver postfix ...
$ sed 's/^\([0-9:+\.T\-]*\|[A-Z][a-z]*\s*[0-9]*\s[0-9:]*\)\s.*/\1/' < test.txt 
Jun  9 16:56:14
2017-06-04T06:59:36.984086+02:00

Объяснение:

  • Совпадение в начале строки: ^
  • используйте круглые скобки с обратной косой чертой, чтобы указать область интереса для обратной ссылки в замене (см. ниже), т.е. «дата» перед «остальным текстом журнала»
  • в скобках: сопоставьте оба варианта (используйте \| для обозначения альтернативы обоих подвыражений)
  • после скобок: соответствовать остальной части строки, потому что мы хотим ее отбросить (сначала это кажется немного нелогичным, но см. следующий пункт)
  • заменить всю строку (именно поэтому мы сопоставляем остальные ) с обратной ссылкой на совпадение даты: \1
1
04.09.2015, 21:07
0 ответов

Теги

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