如何在bash中求倒数和?

如何在bash中求倒数和?,bash,addition,Bash,Addition,我试图找到一系列数字的倒数之和。为了说明我要做的事情,下面是一个基本示例: 使用该文件: 1 2 3 4 我将试图找到1/1、1/2、1/3和1/4的总和。是否有一个简单的bash1行程序来实现这一点?(我是新来的bash,所以欢迎解释!)您可以这样做: sed 's|^|1/|' file | paste -sd+ | bc -l sed的| ^ | 1/|'在每一行前面加上1/ paste-sd+用加号连接所有行,创建一个算术表达式1/1+1/2+1/3+1/4 bc-l计

我试图找到一系列数字的倒数之和。为了说明我要做的事情,下面是一个基本示例:

使用该文件:

1  
2  
3  
4

我将试图找到
1/1
1/2
1/3
1/4
的总和。是否有一个简单的
bash
1行程序来实现这一点?(我是新来的
bash
,所以欢迎解释!)

您可以这样做:

sed 's|^|1/|' file | paste -sd+ | bc -l
  • sed的| ^ | 1/|'
    在每一行前面加上
    1/
  • paste-sd+
    用加号连接所有行,创建一个算术表达式
    1/1+1/2+1/3+1/4
  • bc-l
    计算该算术表达式并输出结果

如果您正在寻找算术级数,可以使用
bash
一行程序,使用
bc
命令

d=0; for c in {1..4}; do d=`echo "$d + 1/$c" | bc -l`; done; echo "$d"
其输出为
1+0.5+0.3333+0.25
=

2.08333333333333333333
它的工作原理是

  • 将名为
    d
    的变量设置为
    0
  • 为计数从1到4的循环创建一个
  • for
    循环中,它将
    d
    变量设置为传递给执行算术的
    bc-l
    命令的新值
    $d+1/$c
  • 并使用
    echo
    命令输出值

  • 这个问题在这里有一个答案:。你不能只用bash做浮点运算。它是如何工作的?我知道,但OP可能不知道。@choroba你是对的,补充说明:)@mickp-非常感谢!我没想到会那样做。