Steven W. Orr wrote:
On Friday, Jul 21st 2006 at 19:27 -0400, quoth Thom Paine:
=>I'm making a digital picture frame out of an old laptop and the pic
=>viewer doesn't support filenames with spaces in them.
=>
=>Is there a quick command I can type to process all files in a
=>directory that will rename the files from "Family Pic 001.jpg" to
=>"FamilyPic001.jpg"?
You've gotten a lot of bash suggestions, ranging from the sublime to the
absurd. Here's my fave:
514 > cat ~/bin/rename
#!/usr/bin/perl
$op = shift;
for (@ARGV) {
$was = $_;
eval $op;
die $@ if $@;
rename($was,$_) unless $was eq $_;
}
515 >
Since it uses perl, you can do regex magic plus more. Your problem would
be solved with
rename 's/ //g' *.jpg
but you can also play games like
rename 'tr/A-Z/a-z/' *.jpg to flip things to lowercase.
Enjoy.
You beat me to the perl script.
I have been using a form of this script for years. I put it in my
personal bin directory and it is so powerful.
The only caution is it will overwrite files that already exist so you
have to be careful.
--
Robin Laing