AWK는 첫 번째 행에서 세 번째 행을, 네 번째 행에서 여섯 번째 행을 반복적으로 뺀 다음 평균을 찾습니다.

AWK는 첫 번째 행에서 세 번째 행을, 네 번째 행에서 여섯 번째 행을 반복적으로 뺀 다음 평균을 찾습니다.

아래와 같이 숫자 목록이 포함된 파일이 있습니다.

4.90889
4.92681
4.99236
5.29358
5.3115
5.37706
5.9354
5.95332
6.01888

첫 번째 숫자에서 세 번째 숫자를 뺀 다음 다음 3줄 블록을 재귀적으로 처리하고 결과를 저장하고 평균을 내야 합니다. 나는 awk로 평균을 구하는 방법을 알고 있지만 처음 할 때는 길을 잃습니다.

위의 숫자를 사용하면 다음과 같습니다.

4.99236 - 4.90889 = 0.08347
5.37706 - 5.29358 = 0.08348
6.01888 - 5.9354 = 0.08348

(0.08347 + 0.08348 + 0.08348)/3 = 0,0834766666667

답변1

일부 모듈로 작업의 경우:

awk '
  FNR%3 == 1 {last = $0} 
  FNR%3 == 0 {sum += $0 - last; n++} 
  END {print (n > 0 ? sum/n : 0)}
' file

관련 정보