for i in * ; do mv $i `echo $i | sed 's/\(.*\)..\.\(.*\)/\1.\2/'` done Should do the trick... It moves each file to the original filename, minus the two characters before the last . As far as a book to get, _Learning the bash Shell, 2nd Edition_, published by o'reilly. Also likely useful _sed & awk, 2nd Edition_, also published by o'reilly. The sed book will translate that example of leaning toothpick syndrome. Scott On Wed, 17 Jul 2002, Tim Trachimowicz wrote:
Hey folks!
I have a bunch of files on a server that are in the format "filename_x.dat" and I need to rename them "filename.dat", i.e. strip to last two characters off the filename while maintaining the extension.
If it wasn't for the fact that I have about 400 files in multiple directories, I'd do it by hand. However, it's of a somewhat urgent nature - hence this slightly off-topic cry for help! =)
I'm pretty sure there's a way to do it via a shell script (I use bash) - the only problem being that I've never written one before. Can anyone point me to a faq/tutorial/website that might explain the process? If it's a trivial task, anyone care to take a stab? Google gave me a few leads, but most aren't helping a lot.
Any help is appreciated! Thanks!
--Tim _______________________________________________ Wlug mailing list Wlug@mail.wlug.org http://mail.wlug.org/mailman/listinfo/wlug