Remove string com espaços e aspas do arquivo xml

0

Eu gostaria de remover a string      currencyId="GBP" de um arquivo xml. Por favor, note que há um único espaço antes da primeira letra c. Estou tendo problemas para analisar os dados e remover essa string (incluindo o espaço inicial) facilitaria para mim. Eu sei que posso usar sed, mas o espaço no início da string e aspas duplas parecem estar me atrapalhando em minhas tentativas até agora.

Para esclarecer, aqui está uma amostra do xml.

<location>Ethiopia</location><country>ET</country><shippingInfo>  
 <shippingServiceCost currencyId="GBP">2.83</shippingServiceCost>
<shippingType>Flat</shippingType>
<shipToLocations>Worldwide</shipToLocations></shippingInfo><sellingStatus>
<currentPrice currencyId="USD">157.5</currentPrice>
<convertedCurrentPrice currencyId="GBP">111.45</convertedCurrentPrice>

Se eu atingir meu objetivo, a linha convertedCurrentPrice poderá ser lida:

<convertedCurrentPrice>111.45</convertedCurrentPrice>
    
por neilH 06.04.2016 / 18:42

2 respostas

2

sed -i 's/ currencyId="GBP"//' file.xml - Isso funciona para mim. Adicione um g no final do comando sed se você quiser substituir todas as instâncias.

    
por 06.04.2016 / 19:10
0

Como você não especificou se deseja substituir a string globalmente ou não, estou supondo que ela substitua por uma linha específica, então o comando seria

sed -i '6s+ currencyId="GBP"++' filename.xml
É melhor fazer o backup do arquivo antes de editá-lo, para estar no lado mais seguro que eu usaria,

sed -i.bak '6s+ currencyId="GBP"++' filename.xml
    
por 08.04.2016 / 11:15