-- snip --
>
> OK, so you only want the item and revision bits from the input file and
> you only want unique one's at that? If this is all you want to do, you
> have no need to read what's in the output file. The script below should
> do what you want. Simply execute with the input file as the 1st argument
> to the script and you can redirect STDOUT to a file.
>
> e.g.
> perl this_script.pl input.txt > output.txt
>
> I have sorted the items alphabetically, if you need the items in the
> order they were encountered in the input file, this will need to be
> changed slightly.
>
> Let me know if this works as you want.
>
> Nathan
>
> -- code start --
> #!/usr/bin/perl -w
>
> use strict;
>
> my %item_rev;   # use this to keep track of what item and revisions are
> encountered
>
> open (INPUT, $ARGV[0]) or die "Couldn't open input file '$ARGV[0]': $!\n";
> while (<INPUT>) {
>         # skip all lines except those starting "CADItem"
>         next unless /^CADItem/;
>
>         # split the line into it's component fields
>         my
> ($item_type,$item_id,$item_revision,$relation,$datsettype,$dataset) =
> split /;/;
>
>         if (exists $item_rev{"$item_id;$item_revision"} ) {
>           # we already found the 1st occurence of this item and revision
>         } else {
>           # this must be the first occurence
>           $item_rev{"$item_id;$item_revision"} = 1;
>         }
> }
> close INPUT;
>
> # %item_rev now contains a unique list of items with revisions
> foreach my $item_with_rev (sort keys%item_rev) { print STDOUT
> "$item_with_rev\n"; }
> -- code end --
> _______________________________________________
> ActivePerl mailing list
> ActivePerl@listserv.ActiveState.com
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>   

Ouch - sorry for the line wrap!! Hopefully, you can figure it out!

Nathan
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to