Shell-Script
從 xml 文件中刪除帶空格和引號的字元串
我想
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