Am 16.05.07 schrieb Christian Perle chris@linuxinfotag.de:
Hi Jens,
On Wed, May 16, 2007 at 13:43:43 +0200, Jens Puruckherr wrote:
aus einer Pipe kommen viele Zahlen raus.
[...]
36.90 52.90 50.90 ...
Diese sollen aufsummiert werden und zum Schluss die Summe angezeigt werden. Wie stelle ich das am besten an?
Ein Loesung waere:
cat zahlen | (tr '\012' + ; echo 0.00) | bc
Das zieht alle Summanden zusammen in eine Zeile. Koennte zum Problem werden, wenn die maximale Zeilenlaenge von bc dadurch ueberschritten wird.
Der Summandenbeschränkung könnte man ja so begegnen:
cat zahlen | while read summand; do summe=$(echo "$summe + $summand" | bc); done;
Wobei es natürlich nicht sehr ökonomisch ist, für jede Zahl nen neues bc zu starten.
Robert