我试图使用C shell计算位于不同行上的总和数。
我必须使用管道使用特定命令。
有许多命令:comand.. | comand.. | (comands...)
以下列形式打印行:
1
2
8
4
7
结果应为 22 ,因为1 + 2 + 8 + 4 + 7 = 22
。
我尝试了... | bc | tr "\n" "+" | bc
,但它没有用。
我无法使用AWK或变量。这就是我寻求帮助的原因。
答案 0 :(得分:0)
您实际上可以使用C shell变量,因为它们是语法的一部分。不使用变量,您需要再次管道和管道:
your-command | sed '2~1 s/^/+/' | xargs | bc
sed
命令在从第二行开始的所有行前加上字符; xargs
将这些行作为一系列参数加入。
可以改进SED表达式以过滤掉非数字行:
'/^[^0-9]\+$/ d; 2~1 s/\([0-9]\+\)/+\1/'