in reply to One long liner to make it short
I would peruse perlrun and use some switches to eliminate much of your setup. Also, I'd use timelocal instead of mktime.
perl -MTime::Local -nle 'if(/^(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}),( +\d{3})/){ $o="$1$2"; @a = reverse split( "[-: ]", $1);$a[3]-=1;$a[4]- +=1;$a[5]-=1900; if(!$l){$t=localtime(@a,0,0,0)*1000+$2; $l=1;} else { + $t2=localtime(@a,0,0,0)*1000+$2;$e=$t2-$t;$t=$t2;$l=0;print "$o $e\n +";}}'
This makes your code a bit shorter. Personally it still feels too long and I would put the code into a script.
Update: I first had localtime instead of timelocal...
|
|---|