Renaming muliple files at once
I have a bunch of wav files I converted to mp3 files using ffmpeg.
Now the mp3 files are all named file.wav.mp3
.
How can I remove the .wav
suffix while keeping the rest of the file name?
I would like to do this on a whole directory at once.
Solution 1:
With a shell loop, removing the shortest "double dot suffix"
for f in *.wav.mp3; do echo mv "$f" "${f%.*.*}.mp3"; done
or (my personal favorite for things like this) with mmv
from package mmv
mmv -n '*.wav.mp3' '#1.mp3'
Remove the echo
or the -n
as appropriate once you are happy that they are doing the right thing.
Solution 2:
Read man rename
and do something like:
rename 's/.wav.mp3/.mp3/' *.wav.mp3
You may have to sudo apt install rename
, first.
Solution 3:
In the file browser in Ubuntu, you can select multiple files and rename them according to a pattern by just hitting F2 or right-clicking and selecting Rename.
Here I am replacing x
with _by_
. In your case you can replace .wav
with an empty string.
Solution 4:
As you can see there are multiple ways to achieve this. Another way using the basename command is shown below:
for file in ./*.wav.mp3
do
mv "$file" "$(basename "$file" .wav.mp3)".mp3
done