实际上我有一个XML文件。以下是文件的内容。
<charge_amt>1.90</charge_amt>
<charge_amt>-89</charge_amt>
我想分开收费(1.90)并检查是否为负数。如果是非负数,请将费用替换为0。
输出:
<charge_amt>0</charge_amt>
<charge_amt>-89</charge_amt>
请帮我解决这个问题。
答案 0 :(得分:0)
尝试sed
:
sed -e 's@<charge_amt>[^-][^<]*</charge_amt>@<charge_amt>0</charge_amt>@g' < file > newfile
请注意,如果文本中包含空格,charge_amt
节点上的属性或任何其他有趣的商家,则不会很好。所以要非常小心,并在出现问题时使用真正的XML解析器。