计算 C shell 中的数字总和

Calculating a sum of numbers in C shell

我正在尝试使用 C shell 计算位于不同行上的总和数字。

我必须使用管道通过特定命令来完成。

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

1
2
8
4
7

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

我试过... | bc | tr "\n" "+" | bc,但没用。

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

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

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

sed命令在从第二行开始的所有行前添加加号; xargs 将行连接为参数序列。

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

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