У меня есть CSV-файл, подобный этому:
,2019 - October,,2019 - September,,2019 - August,
,Agricultural,Industrial,Agricultural,Industrial,Agricultural,Industrial
Toronto,86746,382958,55833,348182,49313,355977
Montreal,70718,605909,22084,549823,23428,641181
Calgary,231493,1420226,114937,1249378,114243,1189979
TOTAL,388957,2409093,192853,2147384,186984,2187137
Я должен сделать скрипт для отображения некоторой информации из файла следующим образом:
2 388957 388957
3 2409093 2409093
.. ...... ....
Например, в в первой строке номер 2 соответствует номеру столбца (отображение начинается в столбце B), следующий номер соответствует сумме строк 3-5 столбца B, а последний номер соответствует номеру в строке ВСЕГО. Вторая строка - это тот же бой, что и для столбца C и т. Д. Из столбца B в столбец G.
Как это можно сделать в Bash Ubuntu?
попытался сделать это, но это не сработало:
#!/bin/bash
INPUTFILE="/media/exports.csv"
FIELD=2
COUNT=`sed 's/[^,]//g' $INPUTFILE | wc -c`; let "COUNT+=1"
while [ "$FIELD" -lt "$COUNT" ]; do
awk 'BEGIN{FS=",";sum=0}{if(NR>=3&&NR<=5)sum=sum+$FIELD}END{print$FIELD,sum, (tail -1), "\n"
}' /media/exports.csv
let "FIELD+=1"
done
При запуске этого скрипта информация отображается следующим образом:
TOTAL,388957,2409093,192853,2147384,186984,2187137 0 -1
Этот результат повторяется много раз. Что я делаю не так?