计算 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]\+\)/+/'
我正在尝试使用 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]\+\)/+/'