LINUX.ORG.RU

Просумировать столбец


0

0
Есть текстовый файл вида со строками вида:
text 555555 15555555
Надо просумировать второй столбец, причём общая сумма может получиться с 10-12 знаками (просто может что-нибудь не понимает большие цифры).
anonymous
bc  is a language that supports arbitrary precision numbers


# intersperses $1 between stdin arguments and writes to stdout
DEF_INTERSPERSE='intersperse() \
                 {             \
                     { xargs -n 1 printf "$1%s"; echo; } | sed "s/^$1//"; \
                  }'
eval "$DEF_INTERSPERSE"

{ echo '{'; cat file | awk '{ print $2 }' | intersperse +; echo '}'; } | bc
dilmah ★★★★★
()
Ответ на: комментарий от sdio
А можно без bc - как-нибудь через bash.
Попробовал так:
echo $((`cat file | awk '{print $2}' | tr '\n' '+'; echo '0'`))
- работает, но не знаю как там bash обрабатывает большие числа ( максимум что у меня может быть это (10^11)-1 ).
anonymous
()
Ответ на: комментарий от anonymous
Попробовал - максимум что bash понимает - 2^31. А может есть что-нибудь типа long long int для bash-а.
anonymous
()
Ответ на: комментарий от anonymous
>А можно без bc - как-нибудь через bash.
>Попробовал так:
>echo $((`cat file | awk '{print $2}' | tr '\n' '+'; echo '0'`)) 

Чем тебе bc не угодил?
cat, awk, tr -- не мешают?
sdio ★★★★★
()
Ответ на: комментарий от anonymous
bc стандартизована. А как раз $((...)) нет.
dilmah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.