awk if-elseの変数の増加

awk if-elseの変数の増加

次のコードがあります。

TOTAL=0
COUNT=0

# a ratio of 10000 indicates that ILP # rejected was 0.
awk -v c=$COUNT -v t=$TOTAL 
'BEGIN  { FS=OFS="," }
NR==1       { $(NF+1)="RATIO" }
NR>1 && NF>3{ if($4==0) $(NF+1)=10000; else {$(NF+1)=$6/$4, c++, t=t+$4} } 
{ print }' "$FILE" > temp.log

AVG=$(($TOTAL/$COUNT))

長すぎます。フィールドを含むファイルがあり、各行に新しいフィールドを追加しています。この場合、外部変数sumをelse増やしたいと思います。ct

私が得るエラーは、syntax error直前にカンマを指すことですc++

私は他を読んだ。回答このコンマ構文を使用するので、この問題を解決する方法を知りたいです。

ベストアンサー1

この問題とは別に指摘コメントから:

カンマは引数を区切るために使用されます。ステートメントを区切るにはセミコロン(または改行)が必要です。例を見る(セミコロン)、ジョブからステートメントを区切ります。

初期化する必要はありませんみんなそして計算シェルの変数もその値を簡単に更新できません。アッ;代わりにアッAVGを計算するには、以下を試してください。

awk 'BEGIN  { FS=OFS="," }
NR==1       { $(NF+1)="ratio" }
NR>1 && NF>3{ if($4==0) $(NF+1) =10000; else { $(NF+1) =$6/$4; count++; total+=$4 } }
{ print }
END{ if(count) print "AVG: " total/count }' infile

おすすめ記事