xmlstarlet – 删除换行符
发布时间:2020-12-25 10:54:36 所属栏目:Linux 来源:网络整理
导读:我有以下文件log.xml: entry messageLine 1 Line 2 and so on/message/entry 在CentOS 5.4上使用xmlstarlet 1.0.1,如果我运行以下命令,同时删除消息中的换行符: xml sel -t -m //entry -v "translate(message,'#xa;','@')" log.xml 结果是: Line 1@ Line
我有以下文件log.xml: <entry> <message>Line 1 Line 2 and so on</message> </entry> 在CentOS 5.4上使用xmlstarlet 1.0.1,如果我运行以下命令,同时删除消息中的换行符: xml sel -t -m //entry -v "translate(message,'
','@')" log.xml 结果是: Line 1@ Line 2 and so on 在CentOS 6上使用xmlstarlet: 1.3.1 compiled against libxml2 2.7.6,linked with 20706 compiled against libxslt 1.1.26,linked with 10126 我会收到: Line 1 Line 2 nd so on 注意“和”转换为空.我想这不是xmlstarlet的问题,而是libxslt的一些变化. 任何想法如何解决它? UPDATE 添加字母“a”转换为空的问题. 解决方法您可以通过定义包含换行符值的变量来以一般方式解决此问题:--var linebreak -n --break 然后使用该变量作为translate函数的第二个参数: xml sel -t -m //entry --var linebreak -n --break -v "translate(message,$linebreak,'@')" log.xml (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |