Переименование файлов в каталоге на основе текста, содержащегося в текстовом файле

Я пытаюсь переименовать около 20 файлов в каталоге на основе того, что содержит текстовый файл. Я искал вокруг и не могу найти ничего, что действительно описывает процесс. Все оригинальные файлы выглядят так:

Track 1.wav
Track 2.wav 

так далее...

Я хотел бы переименовать их в это, которое напечатано в текстовом файле, с именем, которое я хотел бы для файла строка за строкой.

We are Yours
Awake my Love

так далее..

У кого-нибудь есть идеи, как это сделать? Я делаю это совсем немного, но в итоге я делаю это вручную, и он только что состарился.

1 ответ

Решение

Как насчет

n=1
while IFS= read -r newname; do
  printf -v oldname 'Track %d.wav' $((n++)) 
  echo mv -vn "$oldname" "$newname"
done < "filenames.txt"

где filenames.txt это имя файла, в который вы ввели желаемые новые имена.

Если кажется, что все происходит правильно, удалите echo и запустите его снова, чтобы фактически переименовать файлы

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