hi, can someone help me?

i need a hand to get a script for a smal change.

iget this kind of structure...
20080926RIM881T.20081127.104856
20080926RIM881T.20081127.104831.done
20080926RIM881T.20081202.084408.done
20080926RIM881T.20081127.104845
20080926RIM881T.20081127.104834
20080926RIM881T.20081216.084909.done
20080926RIM950T.20080929.101124.done
20080926RIM951T.20080929.101124.done
20080926RIM952T.20080929.101125.done

i woud like to have a script to find all files with .done then i shoug change all files with .done to files without .done


like...
20080926RIM881T.20081127.104831
20080926RIM881T.20081202.084408
20080926RIM881T.20081216.084909
20080926RIM950T.20080929.101124
20080926RIM951T.20080929.101124
20080926RIM952T.20080929.101125

Recommended Answers

All 5 Replies

hi, can someone help me?

i need a hand to get a script for a smal change.

iget this kind of structure...
20080926RIM881T.20081127.104856
20080926RIM881T.20081127.104831.done
20080926RIM881T.20081202.084408.done
20080926RIM881T.20081127.104845
20080926RIM881T.20081127.104834
20080926RIM881T.20081216.084909.done
20080926RIM950T.20080929.101124.done
20080926RIM951T.20080929.101124.done
20080926RIM952T.20080929.101125.done

i woud like to have a script to find all files with .done then i shoug change all files with .done to files without .done


like...
20080926RIM881T.20081127.104831
20080926RIM881T.20081202.084408
20080926RIM881T.20081216.084909
20080926RIM950T.20080929.101124
20080926RIM951T.20080929.101124
20080926RIM952T.20080929.101125

i need a solution.

is it possible to change all files name from blablabla.done to blablabla without done?

ls *.done | while read line ; do mv $line $(basename $line .done) ; done

Hey there,

Just a word of practical advice. If you really "need" a solution and don't have time to wait for someone else to take of their own time to help you with your problem, try doing a search on google for something like:

script to remove extension from filename

and you'll have your answer straight away :)

Best wishes,

Mike

commented: Well said +25

You can change filenames in batch by using the freeware tool "lupasrename".
I am sure it works for folder and filenames. You can select a group of files or folders and
> add or delete txt
> replace txt >>> this is the one you need !!!
> Crop left or right with N characters
> autonumber

I am not sure whether your files are all in the same folder or not. In case not, you probably will have to group them in one folder, then do the filename transformation, and then put them back in their respective original folders again.

Hope this helps

ls *.done | while read line ; do mv $line $(basename $line .done) ; done


You don't need ls.

You don't need basename (an external command).

Your script will fail if any filenames contain spaces, because you haven't quoted "$line" and "$(basename $line .done)"

for file in *.done
do
  mv "$file" "${file%.done}"
done
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.