【问题标题】:When trying to use the bash sum function on a large number of rows, I get an incorrect answer. How do I properly sum these numbers?当尝试对大量行使用 bash 求和函数时,我得到了错误的答案。我如何正确总结这些数字?
【发布时间】:2023-01-26 02:08:08
【问题描述】:

我有几个包含大量行的文件,我很想找到该文件第六列中数字的总和。

目前我使用以下一系列命令:

cat file.txt | cut -f 6 | sed "1d" | sum

它输出:

01667 4

显然我知道这个答案是错误的(当我将所有内容复制到 excel 中并使用那个求和函数时,它给了我 21693 的答案)并且我知道它与语言固有的计算问题有关,但我不确定如何解决这个问题。总共有 1452 个单独的数字,我试图从那个特定文件中求和(我想对几个具有相似行数的相似文件进行计算)。

任何人都可以帮助我解决这个问题吗?

【问题讨论】:

  • 你试过man sum吗? sum 并没有按照您的想法行事。
  • 您应该发布输入格式的 sn-p 和您希望输出的示例。正如 M. Nejat Aydin 所说,sum 不是您的想法,因此也不是您想要的工具。 idownvotedbecau.se/noresearch - 但我会向您发布解决方案,我认为我们仍然可以提供帮助。

标签: bash sum


【解决方案1】:
$: sum --help
Usage: sum [OPTION]... [FILE]...
Print checksum and block counts for each FILE.

sum 不是您想要的。

此外,catcutsed 到其他东西通常表明你做得太过火了。比较this link,更重要的是,this one

看看awk,它可以一次处理所有这些。 (您可能没有 GNU awk。)

awk 'NR>1{tot+=$6} END{print tot}' file.txt

那应该有效地处理它。

【讨论】:

    猜你喜欢
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2010-11-16
    • 2019-06-23
    • 1970-01-01
    • 1970-01-01
    • 2022-10-17
    相关资源
    最近更新 更多