There most certainly is an "easy" way to do this from within terminal. The following will work, but it assumes all of your mp3 files are in the directory in which you are running this command from. It is not much harder to make this more generic, so it will find all mp3 files in the current directory and any subdirectories, but here you go ...
Code:
$ for i in *.mp3; do mv "$i" "`echo $i | sed -e 's,_,\ ,g'`"; done
Make sure you get the single quotes, double quotes and backticks right, or else it won't work. In the sed command, there is a single space after the backslash (\).
BTW, if you want to know what this is doing:
The part up until the first ; means to do a for loop on all mp3 files. Within the for loop (the part between the first ; and "done"), the variable $i represents an individual mp3 file. Then there is a move command (mv) that will rename an individual file to the same name, but replacing the _ with a space.
The "`echo $i | sed -e 's,_,\ ,g'`" part represents the new file name. It is echoing the current name of the file and piping it to 'sed'. Sed is a great line editor that is widely used in batch scripts and what not to do things like this. The backticks (`) mean "do this in another shell and return the answer". The "g" in the sed command means "do the substitution for all _ you find in the filename instead of just the first one." The backsplash is an escape for the space. Spaces in filenames, in the unix world, can be quite evil and cause problems because you always need to escape the spaces or quote the filename.
If you want to know more about what any of these commands do, "man" is your friend ($ man sed).
Edit: I did test this, but you might want to test it out first with a few files in their own directory. There is no "undo" command in the command line world
🙂