When I use time -p, I get seconds of CPU time divided between user and sys: $ time -p zip -0 test.zip *.jpg &>/dev/null real 0.23 user 0.11 sys 0.13 Explanation: http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1 I really want user *plus* sys. This does it: $ ( time -p zip -0 test.zip *.jpg &>/dev/null ) |& awk 'NR>1 {s+=$2}END{print "CPU time = "s}' CPU time = 0.24 So I put the time command in parens to make a subshell, then I use the |& redirect to get the stderr into awk. Using NR>1 (NR is number of record) I skip the first line and sum up the values on the remaining lines. I printed the time with "CPU time = " but I could have done without that: $ ( time -p zip -0 test.zip *.jpg &>/dev/null ) |& awk 'NR>1 {s+=$2}END{print s}' 0.24 Mike