#! /usr/bin/perl use strict; use warnings; my %n; while (<>) { next if /-debuginfo-/; my($nvra)=/^\S+\s+(\S+)/ or die; my($n)=$nvra=~/^(.*)(?:-[^-]+){2}\.[^-]+$/ or die; $n{$n}{$nvra}++; } while (my($n,$r)=each(%n)) { my $maxc=(sort {$b<=>$a;} values(%$r))[0]; my $second; while (my($nvra,$c)=each(%$r)) { if ($c!=$maxc) { # warn "discarded $nvra\n"; next; } print " " if $second; $second=1; print $nvra; } print "\n"; }