1

こんにちは、次のコードに問題があります。

#|/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  

注意: スクリプトの最後に 2 つの区切りがあります。"...1 9__"

まあ、私が本当に欲しいのは、それらがどこから来たのかを識別できる最後の休憩を除くすべての数字を合計することです。私の最初の考えは、改行を「+」に置き換えてから、exprで機能させることでしたが、まったく機能しません...

アドバイスをお願いします。

前もって感謝します!

よろしくお願いします。

4

1 に答える 1

1

助けに行く

$ 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

これら 2 つのスクリプトは、「スクリプトの最後にある 2 つの改行」が意味するものであれば、末尾の空白を無視して数値を合計します。

于 2015-08-25T02:21:02.890 に答える