【问题标题】:awk deduct column value if column value are equal如果列值相等,awk 减去列值
【发布时间】:2014-08-24 12:49:23
【问题描述】:

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

输入文件:

0823 182331.58 5693
0823 182332.23 5693
0823 182331.52 5694
0823 182341.12 5694
0823 182332.99 5695

*182332.23 - 182331.58

***182341.12 - 182331.52

我的预期输出是:

0823 0.65 5693
0823 9.6 5694

提前谢谢!

【问题讨论】:

    标签: awk add


    【解决方案1】:

    应该这样做:

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

    【讨论】:

    • 谢谢!它工作正常,但我发现了一些东西。由于我的输入文件超过 10000 行,我发现结果从第 10000 行开始就混乱了。这是 awk 的限制吗?
    • 不,那是一个相对较小的文件。您对输入文件有一些不理解的地方(控制字符?格式更改?其他?),因此您必须对此进行调查,如果您在找出输入文件的问题后需要帮助解决问题,请返回是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2021-03-15
    • 2019-05-20
    • 2023-01-24
    相关资源
    最近更新 更多