Teser,
Yes, this can be done in the standard shell (in UNIX) but the only way I know is not simple. When I get through you'll see why I did it in Perl.

Hopefully someone else will have an easier solution.
The trouble with Netwrkengeer's approach (and yours, and mine the first time I tried it) is that it would need the UNIX shell wild card characters to work the same way as in the DOS systems. Unfortunately they don't work in the same way at all, and trying to make them work the same will have some unfortunate results.
In DOS (NT/Winxx/etc) the program itself does all of the evaluation of any wild card characters on the command line.
If the user types:
ren *.txt *.tex
then the ren program always sees the command line exactly as it's typed by the user; it has to interpret them itself.
Unix doesn't work like this, the shell program (/bin/ksh in this case) which calls the program (mv) interprets any * and ? chars on the command line; not the mv program. This is weird, I know, but perhaps a little example will make it clearer.
Suppose you have a directory that contains three files:
file.txt file2.txt another_file.1
and you type a command like this:
mv file*.txt *.1
The ksh shell interprets these wildcard chars and actually calls the mv program like this
mv file.txt file2.txt another_file.1
This will cause the mv program to do something that surprises most DOS based people.
It will behave as if you had typed:
cp file.txt another_file.1
rm file.txt
cp file2.txt another_file.1
rm file2.txt
so you end up with just the one file in your dir called another_file.1 - but this file is just a copy of file2.txt
Not what you meant to happen....
To do the renaming process you want, you will have to examine each filename, substitute the various bits using the builtin ksh pattern matching commands and the 'mv' the file.
The command I think you will need to use is the ${parameter%%word} command, here's an example from the solaris man page:
x=posix/src/std
y=${x%%/*}
echo $y
This will print:
posix
This command looks for a pattern ( /* in this case ) and takes the string *before* that and returns it (into $y in the example)
So, one approach would be too split each filename up by calling ${parameter%%word} a couple of times and then bulding the string from the results of that. Not easy, and I don't have a UNIX login in front of me - so I'm not even going to attempt an example....
Have a look at the section marked "Parameter Expansion" in the Solaris ksh man page, the examples are ok - work from those rather than the explanations. Sorry I can't be of more help. Mike
michael.j.lacey@ntlworld.com
Email welcome if you're in a hurry or something -- but post in tek-tips as well please, and I will post my reply here as well.