-- 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
> [email protected]
> To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
>
Ouch - sorry for the line wrap!! Hopefully, you can figure it out!
Nathan
_______________________________________________
ActivePerl mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs