Bash,删除空XML标记
发布时间:2020-12-15 18:27:03 所属栏目:安全 来源:网络整理
导读:使用bash工具我需要一些帮助 我想从文件中删除空xml标签,例如: CreateOfficeCode OperatorIdve/OperatorId OfficeCode1234/OfficeCode CountryCodeLength0/CountryCodeLength AreaCodeLength3/AreaCodeLength Attributes/Attributes ChargeArea/ChargeArea
使用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允许的任何其他内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |