2015-05-22 117 views
0

我有一個xml文件,我需要插入一個值包含在PurchaseOrderNumber="99503"之間的變量。 例如,如果$value=001我將有PurchaseOrderNumber="00199503"。 我試過很多命令與SED,但沒有工作的最後一個我想是sed '/^PurchaseOrderNumber=\"/s/^/001/' file.xml > output.xml 你能幫助我對Sed匹配模式時插入值

<?xml version="1.0"?> 

     <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> 
      <Address Type="Shipping"> 
      <Name>Ellen Adams</Name> 
      <Street>123 Maple Street</Street> 
      <City>Mill Valley</City> 
      <State>CA</State> 
      <Zip>10999</Zip> 
      <Country>USA</Country> 
      </Address> 
      <Address Type="Billing"> 
      <Name>Tai Yee</Name> 
      <Street>8 Oak Avenue</Street> 
      <City>Old Town</City> 
      <State>PA</State> 
      <Zip>95819</Zip> 
      <Country>USA</Country> 
      </Address> 
    </PurchaseOrder> 

回答

2

sed 's/PurchaseOrderNumber="/PurchaseOrderNumber="001/g'

另外,read this

1

使用適當的XML處理工具來處理XML。例如,我使用xsh

open file.xml ; 
insert text '001' prepend /PurchaseOrder/@PurchaseOrderNumber ; 
save :b ; 
+0

'xsh':最用戶友好的unixy開源XML工具身邊!謝謝 !!! – shellter

0

感謝的是工作,我也找到了一種方法,所以我將它張貼如果它可以幫助任何人

sed 's/PurchaseOrderNumber=\"/&001/' file.xml > output.xml