在XML文件中添加新行

时间:2015-06-01 08:37:09

标签: xml awk sed

我有一堆XML文件,都以XML声明

开头
<?xml version="1.0" encoding="UTF-8"?>

在最后的“&gt;”之后它直接与下面标记的开头一起继续 - 就像这样:<?xml version="1.0" encoding="UTF-8"?><tag>

我想将它拆分成一条新线,然后是另一条新线。像这样:

<?xml version="1.0" encoding="UTF-8"?>
New line
New line
<tag>

怎么可以这样做?

非常感谢提前: - )

/保

2 个答案:

答案 0 :(得分:2)

使用sed

AMD$ sed 's/<?xml version="1.0" encoding="UTF-8"?>/&\n\n\n/' File
<?xml version="1.0" encoding="UTF-8"?>


<tag>

只需使用相同的模式替换模式<?xml version="1.0" encoding="UTF-8"?>,然后添加3个换行符(这将在2之前创建<tag>个换行符。

使用sed -i.bak 's/<?xml version="1.0" encoding="UTF-8"?>/&\n\n\n/' File进行原地替换。

答案 1 :(得分:0)

基于您的定义(开头)和内容

sed '1 {
   /<[?]xml/ {
      s/<tag>//
      a \
new line 1 (whatever also just a \n like "new line 2") \
\
<tag>
      }
   }' YourFile
  • 使用带有自由文本的追加调整该行(新行为\ char),并且有一点安全性(仅采用第1行并以?xml开头)< / LI>
  • 使用-i对GNU sed进行内联修改