아래와 같이 숫자 목록이 포함된 파일이 있습니다.
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