计算C shell中的数字总和

时间:2016-11-09 14:00:36

标签: linux shell csh

我试图使用C shell计算位于不同行上的总和数。

我必须使用管道使用特定命令。

有许多命令:comand.. | comand.. | (comands...) 以下列形式打印行:

1
2
8
4
7

结果应为 22 ,因为1 + 2 + 8 + 4 + 7 = 22

我尝试了... | bc | tr "\n" "+" | bc,但它没有用。

我无法使用AWK或变量。这就是我寻求帮助的原因。

1 个答案:

答案 0 :(得分:0)

您实际上可以使用C shell变量,因为它们是语法的一部分。不使用变量,您需要再次管道和管道:

your-command | sed '2~1 s/^/+/' | xargs | bc

sed命令在从第二行开始的所有行前加上字符; xargs将这些行作为一系列参数加入。

可以改进SED表达式以过滤掉非数字行:

'/^[^0-9]\+$/ d; 2~1 s/\([0-9]\+\)/+\1/'