Я использую RedHat Linux и сгенерировал огромный XML-документ, выполнив что-то вроде
while read -r Id; do
curl -X Get "http://ip/api >> $outputfilename
done
, тогда файл результата будет выглядеть примерно так
<?xml version='1.0' encoding='UTF-8'?>
<PurchaseOrder>
<somemanytags/>
</PurchaseOrder><?xml version='1.0' encoding='UTF-8'?>
<PurchaseOrder>
<somemanytags/>
</PurchaseOrder><?xml version='1.0' encoding='UTF-8'?>
<PurchaseOrder>
<somemanytags/>
</PurchaseOrder><?xml version='1.0' encoding='UTF-8'?>
<PurchaseOrder>
<somemanytags/>
</PurchaseOrder>
Теперь я хотел быудалите ?xml
заголовки и промежуточные теги, чтобы целевой файл должен был выглядеть следующим образом.
<?xml version='1.0' encoding='UTF-8'?>
<PurchaseOrder>
<somemanytags/>
<somemanytags/>
<somemanytags/>
<somemanytags/>
</PurchaseOrder>
Я пробовал в vi, когда я делаю что-то вроде ?<\?xml\ version=\'1\.0\'\ encoding=\'UTF\-8\'\?
, оно может совпадать с xml version='1.0' encoding='UTF-8'
, но не можеткажется, может соответствовать за этой точкой.Также я пробовал sed -i -e "s/xml\ version\'1\.0\'\ encoding=\'UTF\-8\'//g" outputfilename.xml
, но, похоже, он не работает с файлом.Могу ли я узнать, есть ли способ сделать это в sed?