2016-11-09 67 views
0

我试图计算使用C shell在不同行上定位的总和数字。计算C shell中的数字总和

我必须用特定的命令使用管道来做到这一点。

有一个数量的命令:comand.. | comand.. | (comands...) 印刷线路中的下面的形式:

1 
2 
8 
4 
7 

结果应该是,由于1 + 2 + 8 + 4 + 7 = 22。我试过... | bc | tr "\n" "+" | bc,但它没有奏效。

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

回答

0

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

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

sed命令预规划加上字符时,从第二个开始的所有行; xargs将这些行作为一系列参数进行连接。

的SED表达可以改善过滤出非数字线:

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