我对下面的代码有问题:
#|/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
这两个脚本都将忽略后面的空格,如果这就是你所说的"脚本末尾有两个停顿"的话。