Bash Sum 파일의 평균 수


0

두 줄의 파일이 있습니다. 첫 번째 줄에는 전체 숫자 (1-100)가 들어 있고 두 번째 줄에는 십진수 (1.0000-99.9999)가 들어 있습니다. 첫 번째 줄과 두 번째 줄의 평균을 구해야합니다. 즉 :

awk '{sum += $1} {avg / $2} NEXT {print sum} END {print avg}' *log

예:

 1log
     20
     4.2
 2log
     34
     1.2

결과물은 다음과 같습니다.

 54
 2.7

답변:


0

awk를 사용하면 FNR 변수는 현재 파일의 레코드 번호를 보유합니다.

awk '
  FNR==1 {sum1 += $1}
  FNR==2 {sum2 += $1; count2++}
  END {print sum1; print (sum2/count2)}
' 1log 2log

또는

paste 1log 2log | {
  read n1 n2; echo $((n1+n2))
  read n1 n2; bc <<< "($n1+$n2)/2"
}

null 값을 가진 파일이 있기 때문에 이것은 나를 위해 실패합니다.
Ken J
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.