Hey gang, I have a list of times I need to sum up. This list can vary from a few to a few thousand entries. Now I had found a closed reference to adding time titled "add up time with xx:yy format in bash how?" In it, the example works great for that formatted list of times... This is the reply code from user AGAMA in that thread:
"
BUT what I'm getting hung up on is how would I introduce the third parameter of seconds to this, if my times had the three columns?
I'm not quite verse enough in scripting to understand the formatting of the read in the 'do' loop. Are the '%' and '#' arbitrary or necessary for what they're representing?
In the other thread Agama tries to explain parameter expansion in a latter reply, but try as I may, I'm not wrapping my shrunken brain around this. I do need a bit of assistance trying to figure it out and adding in the seconds to tally up.
Note that I used a Korn shell in post #2 and itkamaraj used bash in post #3. If you use bash, you will need to strip leading zeros from minutes and seconds values 08 and 09. The Korn shell treats those strings as decimal 8 and 9, respectively; but bash treats them as invalid octal numbers.
You can also do this just using variable expansions without resorting to using cut to extract the minutes with something more like:
which produces the following output when run with either bash or ksh:
Note that I modified the time values in $list to provoke bash complaints with bad octal values. If we change the code in post #3 to use the above list (and add the missing " at the end of the echo statement on the last line), we get the output:
These 3 Users Gave Thanks to Don Cragun For This Post:
Location: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 2,288
Thanks Given: 430
Thanked 480 Times in 395 Posts
Hi.
The dateutils suite contains a code that can add date/time durations: dadd. However, the format of the durations needs to be not in a form like 1:51:59, but rather 1h51m59s. That can be done with a little pipeline, and then presented to dadd, like so:
producing:
The dateutils suite can be found at dateutils, and in repositories for ArchLinux, Debian, Fedora, FreeBSD, Gentoo, NetBSD, OpenSuSE, OS, Slackware, Ubuntu
Gang, this does put things in a better light in my brain...
Don... yes, I am using KSH...
But seeing this same problem solved in multiple ways helps me grasp the entire processing concept.
And now I do have a running process that's cranking out and summing up time numbers. But if I am stuck in another shell or environment, well, now I have these other options also.
Thank you very much for your time gang!
Bruce
Hi All,
I have a file with long list of numbers. This file contains only one column. These numbers are very large. I am using following command:
cat myfile.txt | awk '{ sum+=$1} END {print sum}'
The output is coming in scientific notation. How do I get the result in proper format?
... (4 Replies)
I'm having some troubles setting an instance of postgreSQL to automatically start upon system boot. I have two servers running this app, one is automatically starting the service, the other is not. I'm attempting to use the "svcadmin" command, however, apparently when I run a "svcs -a" search, the... (6 Replies)
Hello,
i'm trying to implement the times() function and i'm programming in C.
I'm using the "struct tms" structure which consists of the fields:
The tms_utime structure member is the CPU time charged for the execution of user instructions of the calling process.
The tms_stime structure... (1 Reply)
If I had a word list with a large amount of words in it, how would I (using a unix command) add, say, 123 to the end of each word?
EDIT: The word list is stored in a large text file. I need a command that applies the ending to each word in the file and saves the result in a new text file. (7 Replies)
Hi Experts,
I want to add 20% to the values and get an output , please advise with script , awk etc,
# cat datafile.txt
50.4053
278.383
258.164
198.743
4657.66
12.7441
646.787
1.56836
23.2969
191.805
53.3096
1.12988
999.058
4100.29 (2 Replies)
i have a list of numbers like this;
124
235
764
782
765
451
983
909
...
and i want to make a sum with the first 3 of them then the next 3 and so on.
124+235+764=1123
782+765+451=1998
...
some ideas? (4 Replies)
Hi all,
I have a list of times:
...10:02
15:34
20:05
01:51
06:55
09:00
05:52...
That's just part of the list (its huge).
How do I go about selecting certain times, e.g. just between 23:00 and 05:00 ?? (4 Replies)
Hello everyone and let me start off by thanking anyone who can help with this.
I work for a company that uses Unix as one of their servers. I'm not at all familar with Unix beyond logging after I restart the server:rolleyes: I'm looking for some command that will bring me up a list of current... (3 Replies)