如何在bash中求和?

时间:2019-01-01 21:41:04

标签: bash addition

我正在尝试查找数字倒数列表的总和。为了说明我正在尝试做的事情,这是一个基本示例:

带有文件:

1  
2  
3  
4

我将尝试找到1/11/21/31/4的总和。有没有简单的bash单线代码可以做到这一点? (我是bash的新手,所以欢迎您进行解释!)

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

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

答案 1 :(得分:0)

如果您正在寻找算术级数,则可以使用k命令使用此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

它的工作原理

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