in reply to how to guess mutual frases?

If the file names are of the same length, you can just walk over them character by character and keep only those that are different.
#!/usr/bin/perl use warnings; use strict; my @files = qw( hhk_1sss-(hello).txt hhk_2abc-(hello).txt hhk_3xyz-(hello).txt ); my @short = @files; my $pos = 0; my $file = shift @short; while ($pos < length $file and '.' ne substr $file, $pos, 1) { my $char = substr $file, $pos, 1; if (@short == grep $char eq substr($_, $pos, 1), @short) { substr $_, $pos, 1, q() for $file, @short; } else { $pos++; } } unshift @short, $file; while (@files) { my $old = shift @files; my $new = shift @short; print "rename $old $new\n"; }
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ