在awk中用固定宽度分割线

时间:2013-02-16 07:32:10

标签: shell

实际上我有一个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>

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

尝试sed

sed -e 's@<charge_amt>[^-][^<]*</charge_amt>@<charge_amt>0</charge_amt>@g' < file > newfile

请注意,如果文本中包含空格,charge_amt节点上的属性或任何其他有趣的商家,则不会很好。所以要非常小心,并在出现问题时使用真正的XML解析器。