I have a load of files in a directory. They all have names like:

APP_001.gif
APP_101.gif

How could I bulk rename them to

01.gif
101.gif

i.e. get rid of the prefix before _, and then remove the first leading zero?

Thanks!

link|improve this question

25% accept rate
1  
Are all prefixes the same APP_, or different? – Daniel Beck Feb 10 '11 at 22:17
feedback

4 Answers

for file in APP_*.gif; do
    new=${file#APP_}
    new=${new#0}
    mv "$file" "$new"
done
link|improve this answer
feedback
shopt -s extglob; for f in in APP_*.gif; do mv "$f" "${f##app_?(0)}"; done
link|improve this answer
feedback

If the actual names are not important, and simply want all of the photos to have unique, yet organized names, you can open automator and create the following automator action.

This is what I do, and then save it as a service (assuming you have 10.6, snow leopard) then you can select any group of files in finder, right click and select . This version prompts the user for the prefix of each file then uses that value (instructions on referencing a variable in an automator action here), but you can also use the rename action alone to number files sequentially.

Numerize

link|improve this answer
Why a down-vote? I answered the question. – finiteloop Feb 10 '11 at 22:52
The numbers seem to be relevant. Otherwise it'd be a simple "how do I make these sequential" question. – Daniel Beck Feb 11 '11 at 6:26
feedback
for a in APP_*.gif; do
   mv "$a" "${a/APP_/}"
done;
link|improve this answer
Oops, missed the bit about first leading zero. – slomojo Feb 10 '11 at 22:40
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.