in reply to Separate duplicate and unique records
Since the input is sorted, you just need one record of "lookahead":
use strict; my $prev; my $dup=0; my ($ifile, $ufile, $dupfile) = qw(data uniq dups); open(IN, $ifile) or die "Cannot open $ifile: $!\n"; open(UNQ,">", $ufile) or die "Cannot open $ufile: $!\n"; open(DUP, ">", $dupfile) or die "Cannot open $dupfile: $!\n"; while (<IN>) { if (defined($prev)) { if ($prev eq $_) { $dup = 1; print DUP $prev; } else { if ($dup) { print DUP $prev; $dup = 0; } else { print UNQ $prev; } } } $prev = $_; } if (defined($prev)) { if ($dup) { print DUP $prev; $dup = 0; } else { print UNQ $prev; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Separate duplicate and unique records
by markguy (Scribe) on Aug 08, 2003 at 13:07 UTC | |
by Thelonius (Priest) on Aug 08, 2003 at 16:13 UTC |