Multiple echos and cuts too slow


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Multiple echos and cuts too slow
# 1  
Old 01-19-2009
Multiple echos and cuts too slow

Hi guys, hopefully this hasn't been asked before - couldn't see the question anywhere.

I have a large number of timestamps (hh-mm-ss-millisecond)
that I need to find the difference between e.g.:

14-11-07-513
14-11-07-644

Now the script that I have just knocked up is horrifically slow, the crux of which is converting the hh, mm, dd into milliseconds:

(( TOTALTIMESTART= (`echo $var | cut -d'-' -f4-8 | cut -d'<' -f1 | cut -c1,2` * 3600000) + \
(`echo $var | cut -d'-' -f4-8 | cut -d'<' -f1 | cut -c4,5` * 60000) + \
(`echo $var | cut -d'-' -f4-8 | cut -d'<' -f1 | cut -c7,8` * 1000) + \
(`echo $var | cut -d'-' -f4-8 | cut -d'<' -f1 | cut -c10,11,12`) ))

Once done on two values it subtracts them from each other and usese the difference.

There is obviously a better way of doing the part above, but I can't think for the life of me what it would be.

Any thoughts?
# 2  
Old 01-19-2009
Code:
$ time ( echo "14-11-07-513" | awk -F- '{ print $1*3600000+$2*60000+$3*1000+$4 }' )
51067513

real    0m0.005s
user    0m0.004s
sys     0m0.000s

# 3  
Old 01-20-2009
Wow, thanks for that. Exactly what I needed. Smilie
# 4  
Old 01-20-2009
Code:
#!/usr/bin/perl
@arr=("14-11-07-513","14-11-07-644");
for($i=0;$i<=$#arr;$i++){
	my @tmp=split("-",$arr[$i]);
	$brr[$i]=$tmp[0]*3600000+$tmp[1]*3600+$tmp[2]*60+$tmp[3];
	print $brr[$i],"--->\n";
}
print $brr[1]-$brr[0];

# 5  
Old 01-21-2009
Hi guys, well I was still having speed problem (albeit it was taking about 10 seconds to process the file instead of 50 seconds - it is a really big file) because both solutions required me to use a cut to fill the variables which obviously slowed it down a fair bit. I did a bit more digging around and thought I would share what I have come up with instead which takes less than 1 second to complete:

Code:
while read monkey
do
   set x $monkey
   TOTALTIMESTART=$(($((${2}*36000000))+$((${3}*60000))+$((${4}*1000))+$5))
   TOTALTIMEEND=$(($((${6}*36000000))+$((${7}*60000))+$((${8}*1000))+$9))
   (( TIMEVAR=($TOTALTIMEEND-$TOTALTIMESTART) ))
   do some stuff
done < $1

Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Terminal telnet echos garbage

i am trying to make powerterm not echo back this charactor. ≥ When I press control-C I get it that telnet charactor/garbage echos back. how to turn off? where? what config? is there something in powerterm to switch on/off? I do not see it. Redhats offical statement is: "I... (10 Replies)
Discussion started by: olyanderson
10 Replies

2. Shell Programming and Scripting

Python script cuts off early

I wasn't sure if this should go in the networking board or not, since I am trying to log into routers, however I don't think my script issues have anything to do with the routers themselves.... I am trying to write a script that will log into various routers we have on the network and determine... (2 Replies)
Discussion started by: ippy98
2 Replies

3. UNIX Desktop Questions & Answers

Create/remove desktop short cuts via command line RHEL 6.3....

I would like to write a script that would remove and/or create shortcuts in Gnome desktop in RHEL 6.3... I googled all over the place could never find what I needed... Any help would be greatly appreciated! Thank you! (0 Replies)
Discussion started by: ruberked
0 Replies

4. UNIX for Dummies Questions & Answers

Pipeing Individual Echos

Hello Yes I'm a noob so thanks for your help. I have a unix exicutable that renders video under os x (unix). As it renders frames it echos (or outputs) information to the terminal about which frame it's up too an how long it took etc. I am looking for a way to pipe this information so I can... (4 Replies)
Discussion started by: mortocks
4 Replies

5. Solaris

Custom short cuts not working on JDS

Hello, I had created a shortcut to open up a gnome-terminal by pressing <Alt>m. This worked fine, until I logged out and logged back in. gnome-terminal no longer opens. However, the process is created, as evidenced by the gnome-terminal showing up on my process list. I've created and deleted... (1 Reply)
Discussion started by: cooldude
1 Replies

6. UNIX for Advanced & Expert Users

Unknown event - daemon mode cuts programs from resources

Hi Guys. First of all Im not keen on os stuff, thus not sure what I should look for to solve my problem, Thats why Im posting before getting deeper into forums. Here is my problem. Im working on academic network - Solaris 7-10. Where parts of configuration is made by students (Im still one).... (1 Reply)
Discussion started by: baranowb
1 Replies

7. UNIX for Dummies Questions & Answers

multiple cuts syntax problem

Hi All, I need some help with multiple cut and paste, at the moment I have a shell script that uses the following cuts ( this is just some) cut -c1-92 WAITING > col1 .....etc etc etc cut -c93-98 WAITING > col17 # blank_spaces cut -c99-104 WAITING > col18 # Date cut -c105... (12 Replies)
Discussion started by: Gerry405
12 Replies
Login or Register to Ask a Question