У меня есть XML-файл, который выглядит примерно так, и я только хочу, чтобы заменить последнее вхождение/пересылки с/ShipHdr/ShipmentX:Linux Баш скрипт - Заменить последнее вхождение строки в файле
<ShipmentX>
<ShipHdr>
<RefID>REF01</RefID>
<HeaderReferenceNumber>1234565</HeaderReferenceNumber>
<Shipment>
<RefCode>GHIJK</RefCode>
<ShipmentStatusCode>FG</ShipmentStatusCode>
</Shipment>
<Summary>
<TotalWeight>10</TotalWeight>
</Summary>
</Shipment>
Выход:
<ShipmentX>
<ShipHdr>
<RefID>REF01</RefID>
<HeaderReferenceNumber>1234565</HeaderReferenceNumber>
<Shipment>
<RefCode>GHIJK</RefCode>
<ShipmentStatusCode>FG</ShipmentStatusCode>
</Shipment>
<Summary>
<TotalWeight>10</TotalWeight>
</Summary>
</ShipHdr>
</ShipmentX>
Любые советы о том, как я могу это сделать с помощью Perl или SED в Баш скрипт?
Спасибо!
Попробуйте 'perl -pe 's/<\/Shipment> \ s * $/<\/ShipHdr> \ n <\/ShipmentX> /''. –
Это не дает желаемого результата, потому что он также заменяет первое появление вместе с последним – user3152289