# HG changeset patch # User Jeff Hammel # Date 1376218993 25200 # Node ID 25e92f9cf011c4041e16ab825ab095a3f88e181a # Parent 7325974b1eff19c86260b9d636e5482383642b5a bin/budget.sh diff -r 7325974b1eff -r 25e92f9cf011 bin/budget.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/budget.sh Sun Aug 11 04:03:13 2013 -0700 @@ -0,0 +1,5 @@ +#!/bin/bash + +# from http://c2.com/doc/expense/ + +exec awk ' $1 ~ /^[A-Z]+[A-Z0-9]*$/ { if (sums[$1] == "" || $1 == "SUM") { sums[$1] = sum # Define Symbol $1 = sum sum = 0 } else { $1 = sums[$1] # Dereference Symbol } } ($1+0) != 0 {$1 = sprintf("%7.2f", $1)} # Pretty Print {print} $2 == "*" {$1 *= $3} # Explicit Calculations $2 == "/" {$1 /= $3} $2 == "DB" {$1 = -$1} $2 == "CR" {$1 = -$1} NF == 0 {sum = 0} # Implicit Summation {sum += $1} ' $1 \ No newline at end of file