Solaris – How to Remove Prefixes from Filenames

filenamesrenamesolaris

I have a bunch of files as follows:

04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956

I need to rename them to exclude the prefix. It needs to look like this..

b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956

EDIT

I forgot to add that I am using Solaris.

Best Answer

for file in * ; do
    echo mv -v "$file" "${file#*_}"
done

run this to satisfy that everything is ok.
if it is, remove echo from command and it will rename files as you want.

"${file#*_}"

is a usual substitution feature in the shell. It removes all chars before the first _ symbol (including the symbol itself). For more details look here.