Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: filtering a text file

by Aragorn (Curate)
on Jun 14, 2004 at 10:35 UTC ( #366483=note: print w/ replies, xml ) Need Help??


in reply to Re: filtering a text file
in thread filtering a text file

Or, if you don't want to use a module, you could try this solution:

#!/usr/local/bin/perl use strict; use warnings; use Data::Dumper; chomp(my @data = <DATA>); my $in_section = 0; my @source_go = (); my $record = {}; foreach my $line (@data) { if ($line =~ /^\[([^]]+)\]/ and not $in_section) { $record->{app} = $1; $in_section = 1; } elsif ($line =~ /^\[([^]]+)\]/ and $in_section and not exists $record->{path}) { # We found a section start, but no Script_Path parameter to go # with it. Warn and continue on the current section. warn("No Script_Path for " . $record->{app} . "\n"); $record->{app} = $1; $in_section = 1; } elsif ($line =~ /^Script_Path=(.+)/) { $record->{path} = $1; push @source_go, $record; $record = {}; $in_section = 0; } } print Dumper(\@source_go); __DATA__ [Microsoft MediaPlayer Settings 1.0] Script_Path=apps\microsoft\mediaplayersettings\1.0\go\mediaplayersetti +ngs10.go Information=Go Success Install_Start_Time=05/26/2004 5:55:36 PM Install_End_Time=05/26/2004 5:55:40 PM [Microsoft Windows Journal Viewer v1.5] Script_Path=apps\microsoft\journalviewer\1.5\go\journalviewer.go UTC_Timestamp=06/03/2003 17:04:10 GoScript_Checksum=66665 Install_Start_Time=05/26/2004 5:58:24 PM Install_End_Time=05/26/2004 5:58:34 PM [Company RAC 1.0] Script_Path=apps\company\remoteaccessclient\1.0\go\uninstallvs.go UTC_Timestamp=03/03/2003 18:19:05 GoScript_Checksum=175108 Product version=1.0 PM [Microsoft Resource Kit v1.0] GoScript_Checksum=69503 Product version=1.0 Install_End_Time=05/26/2004 6:00:42 PM [Microsoft Remote Console Setup v2.02] Script_Path=apps\company\msreskitxp\go\rcsetup.go UTC_Timestamp=05/24/2002 01:19:33 GoScript_Checksum=56813 [Microsoft PowerToys for Windows XP 1.00] Script_Path=apps\microsoft\powertoysforwindowsxp\1.00\go\powertoysforw +indowsxp100.go
It's not extensively tested, but seems to work fine.

Arjen


Comment on Re^2: filtering a text file
Download Code
Re^3: filtering a text file
by Anonymous Monk on Jun 14, 2004 at 21:37 UTC
    THANKS FOR YOUR HELP aragorn.

    You tout me something very useful, I will use this code over and over again thought my Perl life, I am sure.

    I will post the final code once I finish it tomorrow,...hopefully!

    Regards of the highiest order.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://366483]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (5)
As of 2015-07-05 04:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls