You can do this with the
rename command line utility. To do what you want you need a simple regular expression:
.+ represents everything up to (in this context) the last underscore (
_) character (so this works with multiple underscores, as mentioned in your first example). This requires that there be at least one character before the underscore; if you might have file names like
.* instead. So this three-character string (
.*_) will match everything up to and including the last underscore in the filename.
s/old/new/ means substitute the new string (
ds) for the old string. The
g means global and might not be necessary in this case.