次のように区切られたテキストファイルがあります。
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
または、4番目の列にデータがあることが既にわかっている場合は、次のようにすることもできます。
$ 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