Thanks Glynn I tried the first method and It works fine.
What is the use of echo *.jpg in (cd "$dir" && echo *.jpg)? Is it mandatory?
Where can I find more details on ${file%%.jpg} stuff? is it in the bash manual?...
thanks
Vick
From: Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> To: "vick Julius" <julius_vick@xxxxxxxxxxx> CC: linux-admin@xxxxxxxxxxxxxxx Subject: Re: shell/Perl question Date: Tue, 2 Nov 2004 06:58:21 +0000
vick Julius wrote:
> I have several directories (around 10) named ABC, DEF, GHI,...
> Each directory contains more than 50 files named, for example, 1.jpg, 2.jpg,
> 3.jpg,...50.jpg
> These names are the same in each directory (this is what digital cameras do,
> they give the same names...)
> My problem is: I want to put all these files in the same directory, for
> example, Photos, with the following names:
> 1ABC.jpg, 2ABC.jpg, ...50ABC.jpg, 1DEF.jpg, 2DEF.jpg...50DEF.jpg,...
> each image filename (such as 1.jpg) will be split and to insert the name of
> the directory (such as ABC..) after the first part of the name and finally
> append the extension (.jpg) to the filename.
Two examples:
for dir in ABC DEF GHI ; do for file in `(cd "$dir" && echo *.jpg)` ; do mv "$dir/$file" "Photos/${file%%.jpg}$dir.jpg" done done
find . -type f | sed 's!^\./\(.*\)/\(.*\)\.jpg$!mv \1/\2.jpg Photos/\2\1.jpg!' | sh
If any of the filenames contain spaces, it gets more complex.
-- Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx>
_________________________________________________________________
Don't just search. Find. Check out the new MSN Search! http://search.msn.com/
- : send the line "unsubscribe linux-admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html