Например, с интерпретатором XQuery, таким как [113023]XQilla[113024], и входным файлом, таким как
xqilla -i 1. xml 1.query[113026] выводит
Для вашего примера регеxps может быть достаточно, но в общем случае плохая идея использовать их для разбора XML, так как XML не является регулярным языком (т.е. языком, который разбирается с регулярными выражениями).[112530].
Просто используйте -A
-Fter context, -B
efore context или -C
ontext option в grep
, например, чтобы соответствовать вашему примеру:
grep -B2 '^\t' file
Использование GREP -B2 -P '^ \ T' logfile
, чтобы забрать две строки перед каждым набором совпадений. Возможно, вам придется замаскировать сепаратор группы «-», который вставлен между матчами.
РЕЗУЛЬТАТЫ
$ grep -B2 -P '^\t' /tmp/t
time=2
time=3
at com.test.com....
at com.test.com....
at com.test2.com....
--
time=8
time=9
at org.badstuff.com...
at org.badstuff.com...
at org.badstuff.com...