Имеется файл со следующим содержимым:
<root>
<a></a>
<b></b>
</root>
Команда должна вывести:
<root>
<a></a>
<b></b>
Вещи, которые я пытался использовать GNU Win32
порт sed
:
Удалите последние две строки.
Это быстро, но предполагает, что </root>
- вторая до последней строки и приведет к ошибке, если это не так.
sed -e '$d' test.xml | sed -e '$d'
Замена всех вхождений </root>
пустой строкой.
Это работает, но медленнее, чем первое решение, и будет прерываться, если есть вложенные<root>
элементов (маловероятно).
sed -e 's|</root>||' test.xml
Файл, с которым я имею дело, может быть большим, поэтому эффективность важна.
Есть ли способ ограничить подстановку sed последним вхождением в файле?Или есть какая-нибудь другая утилита, которая будет быстрее?