Shell-Script

從 xml 文件中刪除帶空格和引號的字元串

  • July 12, 2021

我想 currencyId="GBP" 從 xml 文件中刪除字元串。請注意,第一個字母 c 前有一個空格。我在解析數據時遇到問題,刪除這個字元串(包括初始空格)會讓我更容易。我知道我可以使用 sed,但到目前為止,字元串開頭的空格和雙引號似乎讓我絆倒了。

為了澄清這裡是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>

如果我實現了我的目標,則 convertCurrentPrice 行將顯示為:

<convertedCurrentPrice>111.45</convertedCurrentPrice>

sed -i 's/ currencyId="GBP"//' file.xml- 這對我有用。g如果要替換所有實例,請在 sed 命令的末尾添加 a 。

由於您沒有指定是否要全域替換字元串,我假設它替換特定行,所以命令是,

sed -i '6s+ currencyId="GBP"++' 文件名.xml

最好在編輯之前備份文件,所以為了更安全,我會使用,

sed -i.bak '6s+ currencyId="GBP"++' 文件名.xml

引用自:https://unix.stackexchange.com/questions/274736