使用UNIX命令从文件中的XML元素中删除逗号

时间:2015-04-20 23:29:11

标签: unix replace

我在UNIX系统中有一个文件。它是一个大约100 MB的大文件。它是一个XML文件。有一个特定的XML标记:

<XYZ> 5,434 </XYZ>

它包含一个逗号,我需要删除它。

我应该如何使用UNIX命令执行此操作?

1 个答案:

答案 0 :(得分:1)

使用XMLStarlet从与名为XYZ的元素关联的文本节点中删除逗号:

xmlstarlet ed \
  -u "//XYZ[contains(., ',')]" \
  -x "translate(., ',', '')" \
  <input.xml >output.xml

此处使用的功能 - contains()translate() - 在XPath 1.0 specification中定义。