How do you need your output to be?
update assuming you wnat to take everything between two dates and put all into one line and everything separated by commas, I came up with this example:
use strict; use warnings; my $text; while(<DATA>) { chomp($_); if($_ =~ /\d{1,2}\/\d{1,2}\/\d{4}/) { $text .= "\n" unless $. == 1; $text .= $_; } else { $text .= ",".$_; } } print $text; __DATA__ 1/3/2007 12:20:01 AM Login,12.588309 SearchLoad,9.432586 SearchCount,20:0.196329 SearchResults,7.418672 SearchSave,3.616305 SearchDelete,2.066482 SearchDetails,6.873061 ClientAdd,0.784989 CMALoad,1.859894 CMASave,3.249620 CMADelete,0.450952 ClientDelete,0.305768 Logout,0.823402 1/3/2007 12:49:22 AM Login,10.958312 SearchLoad,13.644527 SearchCount,41:0.483233 SearchResults,7.027840 SearchSave,4.222601 SearchDelete,0.305821 SearchDetails,7.443877 ClientAdd,1.552915 CMALoad,1.202711 CMASave,5.285398 CMADelete,0.233119 ClientDelete,0.425521 Logout,0.560862
outputs
1/3/2007 12:20:01 AM,Login,12.588309,SearchLoad,9.432586,SearchCount,2 +0:0.196329,SearchResults,7.418672,SearchSave,3.616305,SearchDelete,2. +066482,SearchDetails,6.873061,ClientAdd,0.784989,CMALoad,1.859894,CMA +Save,3.249620,CMADelete,0.450952,ClientDelete,0.305768,Logout,0.82340 +2 1/3/2007 12:49:22 AM,Login,10.958312,SearchLoad,13.644527,SearchCount, +41:0.483233,SearchResults,7.027840,SearchSave,4.222601,SearchDelete,0 +.305821,SearchDetails,7.443877,ClientAdd,1.552915,CMALoad,1.202711,CM +ASave,5.285398,CMADelete,0.233119,ClientDelete,0.425521,Logout,0.5608 +62
In reply to Re: parsing text files continued
by olus
in thread parsing text files continued
by grashoper
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |