From 876fc0b7e706812e845dec68e82bff9c34340932 Mon Sep 17 00:00:00 2001 From: jkratoch <> Date: Thu, 17 Sep 2009 01:44:42 +0000 Subject: [PATCH] Find largest file coverage of smallest number of repeating lines from tail. --- bin/replines | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 bin/replines diff --git a/bin/replines b/bin/replines new file mode 100755 index 0000000..be4125d --- /dev/null +++ b/bin/replines @@ -0,0 +1,24 @@ +#! /usr/bin/perl +use strict; +use warnings; + +my @l=<>; + +my @replen; +REPLEN: for my $replen (1..@l) { + for my $tried (@replen) { + next REPLEN if ($replen%$tried)==0; + } + my $repcountx; + REPCOUNT: for my $repcount (2..@l/$replen) { + for my $repline (0..$replen-1) { + next if $l[@l-$replen+$repline] eq $l[@l-$replen*$repcount+$repline]; + $repcountx=$repcount-1; + last REPCOUNT; + } + } + next if !$repcountx || $repcountx==1; + my $covered=$replen*$repcountx; + print "$replen lines ${repcountx}x covers $covered of ".int(@l)." = ".int(100*$covered/@l)."%\n"; + push @replen,$replen; +} -- 1.8.3.1