Date: Mon, 22 May 2000 12:54:31 +0100 From: Ben Smithurst <ben@scientia.demon.co.uk> To: Dan Larsson <dl@tyfon.net> Cc: mj@isy.liu.se, questions@FreeBSD.ORG Subject: Re: calculate sum in sh Message-ID: <20000522125431.L15686@strontium.scientia.demon.co.uk> In-Reply-To: <NEBBJANJCNNAKCPFKHHFAEHDCEAA.dl@tyfon.net> References: <XFMail.000522124146.mj@isy.liu.se> <NEBBJANJCNNAKCPFKHHFAEHDCEAA.dl@tyfon.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Dan Larsson wrote: > | Not pure shelling, but you can try this with awk > | > | File 'crap.txt' is : > | > | 1 > | 2 > | 3 > | 20 > | > | then > | > | lagrange> awk '{sum += $0} END{print "Grand total is "sum}' crap.txt > | Grand total is 26 > > Perfect! Thanks! Or, in sh, without cheating, :-) sum=0 while read n; do sum=$(($sum + $n)) done < crap.txt echo "Grand total is $sum" I'm not sure how portable $(( )) is, but it works at least in Linux sh and FreeBSD sh, which is all I have access to. If you want more portability, the awk route is probably better. -- Ben Smithurst / ben@scientia.demon.co.uk / PGP: 0x99392F7D To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000522125431.L15686>