#! /usr/bin/perl -w use strict; use File::Find; my $root = shift || '.'; find( sub { return unless /\.mp3$/ and /[ ']/; (my $new = $_) =~ tr/ '/__/; if( -e $new ) { warn "Can't rename $_ to $new (latter already exists).\n"; } else { rename $_, $new or warn "Could not rename $_ to $new: $!\n"; } }, $root );