2015-05-22 81 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