Я ищу способ командной строки (в SunOS) извлечь из файла журнала xml-сообщения, содержащие определенную строку.
Например, файл журнала может содержать xml-сообщения в форме:
<message>
<body>
<tags> uniqueId="123456" </tags>
</body>
</message>
Рядом с другими строками журнала с метками времени.Может быть несколько сообщений xml, которые содержат один и тот же идентификатор, что и одна и та же запись, возможно, были выполнены несколько раз.
Чтобы извлечь xmls в настоящее время, у меня есть эта команда awk:
nawk '$0~s{for(c=NR-b;c<=NR+a;c++)r[c]=1}{q[NR]=$0}END{for(c=1;c<=NR;c++)if(r[c])print q[c]}' b=4 a=15 s="someUniqueId" file
проблема у меня заключается в том, что это вытаскивает определенное количество строк.Тем не менее, xmls могут различаться по длине, и я изо всех сил пытаюсь найти способ изменить это так, чтобы он нашел уникальный идентификатор и потянул все строки до "<message>"
и все строки до "</message>"