Рекурсивный поиск значения и удаление строк до и после него в bash

Есть набор папок с несколькими xml внутри

xml содержит блоки, типа

<group>
 <groupName>Worker</groupName>
 <groupCount>15</groupCount>
 <groupStatus>1</groupStatus>
</group>
<group>
 <groupName>Driver</groupName>
 <groupCount>3</groupCount>
 <groupStatus>1</groupStatus>
</group>
<group>
 <groupName>Thief</groupName>
 <groupCount>13</groupCount>
 <groupStatus>1</groupStatus>
</group>

Надо удалить целиком блок

<group>
...
</group>

во всех xml во всех папках, где groupName=Thief

Поиск из верхней папки

grep -r -A 3 -B 1 "groupName>Thief<"

или

cat *.xml | grep -ir -A 3 -B 1 "groupName>Thief<"

Возвращает имена файлов и нужные блоки, но как их удалить из файлов?


Ответы (0 шт):