С sed
:
sed 's/^\([^_]*\)_[^:]*:\([^,]*\)[^]]*\]\([^[]*\).*/\1: \2:\3/'
^\([^_]*\)
совпадает с началом строки ^
. Затем часть внутри скобок \(...\)
сохраняется во внутренней переменной sed \1
:
[^_]*
совпадение любого символа, не являющегося символом подчеркивания _
ноль или более раз *
. [^:]*
за этим следует любой символ, который не является :
. \([^,]*\)
снова в скобках и сохраняется в переменной \2
: каждый символ до ,
после даты. [^]]*\]
разбор продолжается до появления ]
(перед описанием ошибки). \([^[]*\)
затем сопоставляем все до следующего открывающего квадратного браслета [
и сохраняем в \3
. \1: \2:\3
теперь замените все на форматированный вывод и значения переменных \1
, \2
и \3
. Выход:
CreateOrder: 2015-09-29 15:42:06: Error description
ScheduleOrder: 2015-09-29 15:42:06: Error description 2
ScheduleOrder: 2015-09-29 15:42:06: Error description 3
ShipOrder: 2015-09-29 15:42:06: Error description 4