如果列值相等,awk将扣除列值

如果列值相等,awk将扣除列值,awk,add,Awk,Add,我有一个输入文件,如果列值相等,我想扣除列值 输入文件: *182332.23-182331.58 ***182341.12-182331.52 我的预期产出是: 0823 0.65 5693 0823 9.6 5694 提前谢谢 像这样的东西应该可以做到: awk '$3 in saved{$2 = $2 - saved[$3]; print} {saved[$3] = $2}' file 谢谢!它很好用,但我发现有东西弄坏了。因为我的输入文件超过10000行,我发现结果从10000行开始

我有一个输入文件,如果列值相等,我想扣除列值

输入文件:

*182332.23-182331.58

***182341.12-182331.52

我的预期产出是:

0823 0.65 5693
0823 9.6 5694

提前谢谢

像这样的东西应该可以做到:

awk '$3 in saved{$2 = $2 - saved[$3]; print} {saved[$3] = $2}' file

谢谢!它很好用,但我发现有东西弄坏了。因为我的输入文件超过10000行,我发现结果从10000行开始就一团糟。这是awk中的限制吗?不,这是一个相对较小的文件。输入文件有一些您不了解的地方(控制字符?格式更改?其他?),因此您必须对此进行调查,如果您需要帮助,请在确定输入文件的问题是什么后回来解决问题。
awk '$3 in saved{$2 = $2 - saved[$3]; print} {saved[$3] = $2}' file