将sed输出转换为expr sum



我对下面的代码有问题:

#|/bin/tcsh
TOTALMOS=`grep -v "Last MO:" x.log | grep "Total: .* MOs" | grep "Total: .* MOs" | awk '{ print $2 }' | tr 'n' ' ' | awk '{ print $1 }'`
RADIONO=`grep -n "get radio no" x.log | cut -f1 -d:`
RADIONO2=`expr "$RADIONO" + 6`
RADIONO3=`expr "$RADIONO2" + "$TOTALMOS"`
SED=`sed -n ''$RADIONO2','$RADIONO3'p' x.log | awk '{ print $3 }' | tr 'n' '  '`
echo "$SED"

输出如下:

5 8 2 4 0 10 6 11 1 3 1 9  

请注意:在脚本末尾有两个休息符为"...1 9__"

嗯,我真正想要的是把所有的数字加起来,不包括最后一个数字,不知道它们来自哪里。我的第一个想法是用"+"代替换行符,然后用expr使其工作,但它根本不起作用…

有什么建议吗?

提前感谢!

问好。

救援

$ echo "1 2 3 4 5 6 7    " | awk -vRS=" " '{sum+=$0} END{print sum}'
28
$ echo "1 2 3 4 5 6 7    " | awk '{for(i=1;i<=NF;i++) sum+=i; print sum}'                    
28

这两个脚本都将忽略后面的空格,如果这就是你所说的"脚本末尾有两个停顿"的话。

相关内容

  • 没有找到相关文章

最新更新