Bash,删除空XML标记

前端之家收集整理的这篇文章主要介绍了Bash,删除空XML标记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用bash工具我需要一些帮助

>我想从文件删除空xml标签,例如:

<CreateOfficeCode>
      <OperatorId>ve</OperatorId>
      <OfficeCode>1234</OfficeCode>
      <CountryCodeLength>0</CountryCodeLength>
      <AreaCodeLength>3</AreaCodeLength>
      <Attributes></Attributes>
      <ChargeArea></ChargeArea>
 </CreateOfficeCode>

成为:

<CreateOfficeCode>
      <OperatorId>ve</OperatorId>
      <OfficeCode>1234</OfficeCode>
      <CountryCodeLength>0</CountryCodeLength>
      <AreaCodeLength>3</AreaCodeLength>
 </CreateOfficeCode>

为此我通过这个命令这样做了

sed -i '/><\//d' file

这不是那么严格,更像是一个技巧,更合适的是找到< pattern>< / pattern>并删除它.建议?

>其次,如何从:

<CreateOfficeGroup>
       <CreateOfficeName>John</CreateOfficeName>
       <CreateOfficeCode>
       </CreateOfficeCode>
 </CreateOfficeGroup>

至:

<CreateOfficeGroup>
       <CreateOfficeName>John</CreateOfficeName>
 </CreateOfficeGroup>

>作为一个整体?从:

<CreateOfficeGroup>
       <CreateOfficeName>John</CreateOfficeName>
       <CreateOfficeCode>
            <OperatorId>ve</OperatorId>
            <OfficeCode>1234</OfficeCode>
            <CountryCodeLength>0</CountryCodeLength>
            <AreaCodeLength>3</AreaCodeLength>
            <Attributes></Attributes>
            <ChargeArea></ChargeArea>
       </CreateOfficeCode>
       <CreateOfficeSize>
            <Chairs></Chairs>
            <Tables></Tables>
       </CreateOfficeSize>
 </CreateOfficeGroup>

至:

<CreateOfficeGroup>
       <CreateOfficeName>John</CreateOfficeName>
       <CreateOfficeCode>
            <OperatorId>ve</OperatorId>
            <OfficeCode>1234</OfficeCode>
            <CountryCodeLength>0</CountryCodeLength>
            <AreaCodeLength>3</AreaCodeLength>
       </CreateOfficeCode>
 </CreateOfficeGroup>

你能否回答个人问题?非常感谢你!

sed '#n
1h;1!H
${ x
:remtag
  s#\(\n* *\)*<\([^>]*>\)\( *\n*\)*</\2##g
  t remtag

  p
  }' YourFile

(posix版本所以–posn在GNU sed上)

>以递归方式将空标签从下部杆移至上部,直至不再出现空标签.>不是XML解析器,所以类似于< tag1 prop =“< tag2>< / tag2>”> …也将删除道具内容以及xml允许的任何其他内容.

原文链接:https://www.f2er.com/bash/385230.html

猜你在找的Bash相关文章