Beri Veera-ext, Reddy wrote:
> Hi,
>  Sorry for trouble.
> Input file:
> ##############################
> CADItem;56500000001295;A4;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A4;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A4;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A4;IMAN_specification;UGMASTER;56500000001295-A1;prt;
> 56500000059898_A1.prt
> CADItem;56500000001295;A4;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> dwg_sht1.qaf
> CADItem;56500000001295;A4;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A4;IMAN_specification;UGPART;56500000001295_dr01;prt;
> 56500000001295_dr01.prt
> CADItem;56500000001295;A2;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A2;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A2;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A2;IMAN_specification;UGMASTER;56500000001295-A1;prt;
> 56500000059898_A1.prt
> CADItem;56500000001295;A2;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> dwg_sht1.qaf
> CADItem;56500000001295;A2;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A2;IMAN_specification;UGPART;56500000001295_dr01;prt;
> 56500000001295_dr01.prt
> CADItem;56500000001295;A5;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A5;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A5;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A5;IMAN_specification;UGMASTER;56500000001295-A1;prt;
> 56500000059898_A1.prt
> CADItem;56500000001295;A5;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> dwg_sht1.qaf
> CADItem;56500000001295;A5;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A5;IMAN_specification;UGPART;56500000001295_dr01;prt;
> 56500000001295_dr01.prt
> CADItem;56500000001295;A3;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A3;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A3;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A3;IMAN_specification;UGMASTER;56500000001295-A1;prt;
> 56500000059898_A1.prt
> CADItem;56500000001295;A3;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> dwg_sht1.qaf
> CADItem;56500000001295;A3;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A3;IMAN_specification;UGPART;56500000001295_dr01;prt;
> 56500000001295_dr01.prt
> CADItem;56500000001295;A1;previous_TIFF;TIFFDrawing;56500000001295_dr01;tif;
> 56500000001295_dr01.tif
> CADItem;56500000001295;A1;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A1;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A1;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A1;IMAN_specification;UGMASTER;56500000001295-A1;prt;
> 56500000059898_A1.prt
> CADItem;56500000001295;A1;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> dwg_sht1.qaf
> CADItem;56500000001295;A1;IMAN_specification;UGPART;56500000001295_dr01;qaf;
> qafmetadata.qaf
> CADItem;56500000001295;A1;IMAN_specification;UGPART;56500000001295_dr01;prt;
> 56500000001295_dr01.prt
> CADItem;56500000001295;A6;IMAN_specification;TIFFDrawing;56500000001295_dr01
> ;tif;56500000001295_dr01.tif
> CADItem;56500000001295;A6;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> images_preview.qaf
> CADItem;56500000001295;A6;IMAN_specification;UGMASTER;56500000001295-A1;qaf;
> qafmetadata.qaf
> ##############################################
>
> I have to tokenize each string and get item and
> revision(ex:56500000001295;A4)
>
> Output like:
> ################
> 56500000001295;A4 
> 56500000001295;A2
> 56500000001295;A5
> 56500000001295;A3
> 56500000001295;A1
> 56500000001295;A6
>
> So I want each line should be unique. No multiple entries.
> I hope this can help for understanding.
>
> Thanks and Regards
> Reddy
>   


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

Reply via email to