xmlstarlet – 删除换行符
发布时间:2020-12-05 06:26: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
我有以下文件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 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- dma_mmap_coherent和remap_pfn_range有什么区别?
- 找不到mysql.sock,我在哪里可以找到它?
- 哪个Linux发行版最适合Java网络应用程序?
- 使用私钥将TeamCity VCS Root与GitHub存储库连接
- linux – 如何转义.gitconfig代理身份验证中的特殊字符
- 如何看linux是32位还是64位--转
- 我应该在/ var还是/ opt中安装Linux应用程序?
- linux – 如何将输出从dd命令重定向到/ dev / null?
- Rsync守护进程:它真的有用吗?
- 使用Linux上的C访问Sony Playstation SixAxis Controller