>>$ ( tr "\n" "+" <total.bytes |sed 's!+\+!+!g;s!^+\|+$!!g'; echo ) |bc
>>$ tr "\n" "+" <total.bytes |sed 's!+\+!+!g;s!^+\|+$!!g'|xargs|bc
>>$ egrep -o '[0-9]+' <total.bytes |tr "\n" "+" |sed 's!+$!\n!'|bc
>как бы bc не отвалился, хз сколько там чисел Действительно! %)
>echo `cat total.bytes` | tr " " "+" | bc
>это все хорошо, а если там чисел столько что bc отвалится
$ cat ./x41
#!/bin/bash
n=10
for((i=1;i<7;i++)); do
yes | head -$n |sed 's!y!1000000001!' | (\
/usr/bin/time bc <(echo 'sum=0;while((val=read())!=0){sum+=val}; sum') |\
tr -d "\n"|wc -c
) 2>&1 |tr "\n" " "|awk '{print '"$((${#n}-1))"'" "$NF" "$1" "$3" "$4;exit}'
n="${n}0"
done
#
#done$ ./x41
1 11 0.00user 0:00.00elapsed 0%CPU
2 12 0.00user 0:00.00elapsed 44%CPU
3 13 0.01user 0:00.01elapsed 70%CPU
4 14 0.09user 0:00.10elapsed 85%CPU
5 15 0.88user 0:01.06elapsed 83%CPU
6 16 8.82user 0:10.20elapsed 86%CPU
$ _
Вот такой вариант, соответственно, не подавился суммированием миллиона (десяти лениво было ждать) чисел:
bc <(echo 'sum=0;while((val=read())!=0){sum+=val}; sum')
Из трёх моих первых до таких "высот" не дожил ни один: xargs умер раньше всех, а при передаче сотни тысяч(или типа того) слагаемых в виде строки 1+1+1+,,, bc слишком активно кушал память (типа, всю свободную и начинал "свопиться" = тормозить себя и всю систему).
PS: <(echo '...') - башизм, чтоб сэкономить "лишний" файл.
PPS: Первая колонка "бенчмарка" - log($числа_слагаемых), вторая - "длинна" суммы.