Linux/Unix로 구분된 텍스트 파일의 합계 값

Linux/Unix로 구분된 텍스트 파일의 합계 값

다음과 같이 구분된 텍스트 파일이 있습니다.

Code|Grade_CD|FCST|Change_Prob|target
11245|yyy|2020-01-01|25.0124|2020
11245|yyy|2020-01-01|25.0124|2020
11245|yyy|2020-01-01|22.0124|2020
11245|yyy|2020-01-01|22.0124|2020

파일의 헤더를 무시하고 "Change_Prob" 열 아래의 모든 값을 추가하고 합계를 Total Change_Prob = 94.0496으로 인쇄해야 합니다.

답변1

awk -F\| 'NR>1 { sum=sum+$4; }; END { print sum; }' input

답변2

awk -F'|' 'NR > 1 { sum = sum + $4 }; END { print "Total change_Prob = " sum }' infile

답변3

{
  col='Change_Prob' 
  printf 'Total %s = ' "$col"
  c=$(head -n 1 | tr '|' '\n' | grep -nxF -- "$col" | cut -d: -f1)
  cut -d"|" -f"$c" - | paste -sd+ | bc -l
} < file
Total Change_Prob = 94.0496

또는 네 번째 열에 데이터가 있다는 것을 이미 알고 있는 경우 다음과 같이 수행할 수도 있습니다.

$ printf 'Total Change_Prob = '
$ tail -n+2 inp | cut -d"|" -f4 - |  tr :- :_ |
   dc -e '[pq]sq[?z1=q+l?x]s?czdd=?'
Total Change_Prob = 94.0496

관련 정보