Renaming muliple files at once

У меня есть куча wav-файлов, которые я конвертировал в mp3-файлы с помощью ffmpeg.

Теперь все mp3-файлы называются file.wav.mp3 .

How можно удалить суффикс .wav , сохранив остальную часть имени файла? Я хотел бы сделать это сразу для всего каталога.

5
задан 29 July 2020 в 22:50

8 ответов

С помощью цикла оболочки, удалив кратчайший «суффикс с двумя точками»

for f in *.wav.mp3; do echo mv "$f" "${f%.*.*}.mp3"; done

или (мой личный фаворит для подобных вещей) с помощью mmv из пакета mmv

mmv -n '*.wav.mp3' '#1.mp3'

Удалите echo или -n , если вы уверены, что они поступают правильно.

18
ответ дан 2 August 2020 в 22:02

Если у вас есть все файлы с именами в формате .wav.mp3 , используйте следующую команду:

for i in *.wav.mp3; do echo $i; mv "$i" "${i::-8}.mp3"; done
2
ответ дан 2 August 2020 в 22:02

Находясь в каталоге с файлами .wav.mp3 :

for i in *.wav.mp3; do mv "$i" "$(echo $i | sed s/.wav//g)"; done

Тем не менее, вы можете использовать то же самое для своей команды ffmpeg, поэтому не не придется переименовывать их позже.

1
ответ дан 2 August 2020 в 22:02

Я просто хочу добавить подсказку:

Хорошая программа для таких задач - emv .

Вы запускаете ее как `emv .wav.mp3 , и откроется редактор. Затем вы можете использовать поиск и замену. Затем вы сохраняете файл и закрываете редактор, и программа переименовывает ваши файлы.

Это особенно удобно, когда вы знаете, как использовать расширенный редактор, такой как vim , но даже когда большинство простых редакторов поддерживают поиск и замените то, что вам обычно нужно для решения подобных проблем.

0
ответ дан 2 August 2020 в 22:02

Как видите, есть несколько способов добиться этого. Другой способ использования команды basename показан ниже:

for file in ./*.wav.mp3
do
    mv "$file" "$(basename "$file" .wav.mp3)".mp3 
done
4
ответ дан 2 August 2020 в 22:02

В браузере файлов в Ubuntu вы можете выбрать несколько файлов и переименовать их в соответствии с шаблоном, просто нажав F2 или щелкнув правой кнопкой мыши и выбрав Переименовать .

Здесь я заменяю x на _by_ . В вашем случае вы можете заменить .wav пустой строкой.

rename multiple files in Ubuntu

7
ответ дан 2 August 2020 в 22:02

Если у вас есть все файлы с именами в формате .wav.mp3 , используйте следующую команду:

18
ответ дан 2 August 2020 в 22:02
#!/bin/bash
for i in *
do
 #Define the string value
 text="$i"

 # Set .wav as the delimiter
 IFS='.wav.'

 #Read the split words into an array based on space delimiter
read -a strarr <<< "$text"
mv "$i" "${strarr[0]).mp3" #changing input file name


done
0
ответ дан 2 August 2020 в 22:02

Другие вопросы по тегам:

Похожие вопросы: