#!/usr/bin/perl # Identifies multiple files with the same name # rename them to file_1.ext, file_2.ext, etc. # # $Id: dblname.pl,v 1.1 2003/02/16 18:42:03 ecu Exp ecu $ # # Usage : find . | /path/to/thisscript use strict; my %names = (); while(my $f=<>) { if($f =~ m/^\.\/(.*)\/([^\/]+)$/) { my $l = $2; chomp $l; chomp $f; push @{$names{$l}}, $f; } } foreach my $k (keys %names) { if (@{$names{$k}} > 1) { # print "$k -> "; # print join(", ", @{$names{$k}}); # print "\n"; my $i = 0; foreach my $file (@{$names{$k}}) { my($base, $ext) = $file =~ m/^(.*)\.([^.]+)$/; system("mv", "-v", "$file", "$base\_$i.$ext"); $i++; } } }