아래와 같은 값을 가진 샘플 파일이 있는데 [] 안에 있는 부분의 가중 평균을 계산하고 싶습니다.
6708.1717,07/15/2015,[6708:2],[6708.1609:3],[6708.5:5]
3352.130000000,07/15/2015,[3352:4]
6708.1717,07/15/2015,[6708:2],[6708.1609:2],[6708.5:5]
첫 번째 줄의 샘플 출력은 다음과 같아야 합니다.
6708.1717,07/15/2015, [(6708 x 2 + 6708.1609 x 3 + 6708.5 x 5)/2+3+5]
[]가 있는 열의 개수는 행마다 다릅니다. 계산하는
방법이 있나요awk
답변1
난 쓸수있다
awk -F, -v OFS=, '{
n=0
sum=0
for (i=3; i<=NF; i++) {
split( substr( $i, 2, length($i)-2 ), a, /:/)
sum += a[1]*a[2]
n += a[2]
}
print $1, $2, sum/n
}' file
생산하다
6708.1717,07/15/2015,6708.3
3352.130000000,07/15/2015,3352
6708.1717,07/15/2015,6708.31