DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Shell Scripting (http://www.daniweb.com/forums/forum113.html)
-   -   change file names (http://www.daniweb.com/forums/thread162814.html)

rgy Dec 18th, 2008 2:50 am
change file names
 
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

rgy Dec 18th, 2008 4:17 am
Re: change file names
 
Quote:

Originally Posted by rgy (Post 759830)
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?

bugmenot Dec 18th, 2008 9:39 am
Re: change file names
 
ls *.done | while read line ; do mv $line $(basename $line .done) ; done

eggi Dec 18th, 2008 11:46 pm
Re: change file names
 
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:

Quote:

script to remove extension from filename
and you'll have your answer straight away :)

Best wishes,

Mike

koendumont Jan 22nd, 2009 6:03 am
Re: change file names
 
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

cfajohnson Jan 25th, 2009 10:08 am
Re: change file names
 
Quote:

Originally Posted by bugmenot (Post 760017)
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


All times are GMT -4. The time now is 7:33 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC