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

관련 정보