У меня есть XML-файл, в котором я хотел бы найти второе вхождение строки, а затем удалить строку на 2 строки вниз от строки. Вот пример того, как это выглядит:
<application>
<app>
<Name>Tester</Name>
<Class>tester.update</Class>
<const>
<argument>READ_ONLY</argument>
</const>
<role>sysad</role>
</application>
<application>
<app>
<Name>Tester</Name>
<Class>tester.update</Class>
<const>
<argument>READ_ONLY</argument>
</const>
<role>tester</role>
</application>
Вот как я хочу, чтобы это выглядело:
<application>
<app>
<Name>Tester</Name>
<Class>tester.update</Class>
<const>
<argument>READ_ONLY</argument>
</const>
<role>sysad</role>
</application>
.
.
.
<application>
<app>
<Name>Tester</Name>
<Class>tester.update</Class>
<const>
</const>
<role>tester</role>
</application>
Теги аргументов должны быть полностью удалены из 2-го экземпляра
Я ищу tester.update
, а затем пытаюсь удалить строку, которая на 2 строки ниже, во втором появлении tester.update
Я пытался сделать что-то вроде:
sed -i 'tester.update/{p;N;d}' file.txt
но это удаляет 2-ю строку из обоих экземпляров tester.update.
Спасибо за любую помощь заранее