shell - 最优雅的 unix shell 单行来求和任意精度的数字列表?

标签 shell awk scripting bc dc

关于整数加单行,存在几种建议的 shell 脚本解决方案;
然而,仔细观察所选择的每个解决方案,都存在固有的局限性:

  • awk那些会以任意精度和整数大小窒息(毕竟它的行为类似于 C)
  • bc宁愿对任意长的输入不满意:(sed 's/$/+\\/g';echo 0)|bc

  • 了解可能存在跨平台的可移植性问题(参见 [1] [2]),这是不希望的,
    是否有通用解决方案在 上都是赢家?实用性 简短 ?

    提示:SunOS 和 MacOSX 是可移植性成为问题的示例。
    菲。可以dc命令允许处理任意大的 2^n、整数或其他输入?

    [1] awk :https://stackoverflow.com/a/450821/1574494https://stackoverflow.com/a/25245025/1574494Printing long integers in awk

    [2] bc :Bash command to sum a column of numbers

    最佳答案

    dc(1)的最优解对读取的输入求和:

    $ jot 1000000 | sed '2,$s/$/+/;$s/$/p/' | dc
    500000500000
    

    关于shell - 最优雅的 unix shell 单行来求和任意精度的数字列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771056/

    相关文章:

    php - 从 bash 调用 php 函数 - 带参数

    linux - 如何使用 sed 's/$var/$var2' 文件

    linux - Unix/Linux 从 df 输出中提取挂载点上的剩余可用空间

    linux - 如何从 4400 万行文件中随机选择 1 万行

    shell - 如何在 postgres 中使用 shell 脚本触发 VACUUM 命令

    shell - set -e 和 exec "$@"对 docker 入口点脚本有什么作用?

    linux - 将带有单引号的 awk 程序嵌入到 shell 脚本中

    linux - bash if 语句问题

    database-design - 条件操作的数据库设计

    bash - 按参数过滤的总计数 - bash