perl -F':' -lane ' push @{$h{$F[1]}}, [$F[0],$_] }{ print $_->[1] for map { splice [sort {$b->[0] <=> $a->[0]} @{$h{$_}}],0,4 } keys %h' file 20470:ZM:Samfya:Africa 20149:ZM:Sesheke:Africa 18638:ZM:Siavonga:Africa 699385:ZW:Bulawayo:Africa 61739:ZW:Chinhoyi:Africa 47294:ZW:Chegutu:Africa 37423:ZW:Bindura:Africa