Допустим, у нас есть tmp.log , что-то вроде ниже.
2018-12-31 09:49:24 addData [data=data]</br>
2018-12-31 09:49:25 publishData .......................
2018-12-31 09:49:26 createDoc [xml=<mail><recipent>doctor who</recipent></mail>]<attempt>1</attempt>]
2018-12-31 09:49:26 createDoc [xml=<clientHash>hash</clientHash><content>context</content>]
2018-12-31 09:51:27 exampleService [count=1]
Мы можем объединить некоторые основные команды, чтобы получить желаемый результат.
- Извлечь xml-строки из всего файла журнала.
- Разделить строку по символу '[' и получить второй элемент.
cat tmp.log | grep xml | awk 'BEGIN { FS = "[" } ; { print $2 }'
Это приведет к чему-товот так:
xml=<mail><recipent>doctor who</recipent></mail><attempt>1</attempt>]
xml=<clientHash>hash</clientHash><content>context</content>]
Если вы также хотите избавиться от последнего символа, который является '] '.Добавьте еще один awk.
cat tmp.log | grep xml | awk 'BEGIN { FS = "[" } ; { print $2 }'| awk 'BEGIN { FS = "]" } ; { print $1 }'
Я знаю, что это не самый крутой способ сделать это, по крайней мере, это легко понять и работает.