Сценарий для переименования файлов с использованием текстового файла, содержащего альтернативные имена файлов

У меня есть папка, содержащая тысячи файлов:

file1.jpeg file2.jpeg file3.jpeg 

и т.п.

У меня есть текстовый файл, содержащий список новых имен файлов, которые я хочу заменить:

 old_filename new_filename file3.jpeg my_dog.jpeg file1.jpeg my_cat.jpeg file2.jpeg my_goat.jpeg 

и т.п.

Я ищу сценарий для переименования всех файлов в папке с использованием новых имен файлов (или добавления нового имени в качестве префикса к исходному имени файла).

Я думаю, мне нужно что-то, что будет искать в папке, сравнить имя с текстовым файлом и затем переименовать файл соответствующим образом.

Списки и файлы не сортируются в любом случае.

Сначала убедитесь, что у вас есть резервная копия, прежде чем пытаться это сделать.

К вашим примерам, к счастью, не осталось пробелов в именах и именах, и не упоминается о подкаталогах (все в одном каталоге), поэтому, если все строки в вашем списке выглядят таким образом

  1. имеют rename_rules.txt в том же каталоге, что и ваши изображения
  2. cd в этот каталог
  3. бег:

      eval "$(sed 's/^/mv /g' rename_rules.txt )" 
    • где rename_rules.txt содержит только пары oldname newname на каждой строке
    • sed используется для преобразования вашего rename_rules в mv oldname newname
    • eval затем используется для его выполнения, поэтому файл переименовывается

отказ: проверка подлинности или проверки файлов не встроена в этот простой короткий скрипт вообще, поэтому я сказал, что первое, что нужно сделать, это убедиться, что у вас есть резервная копия, если одна из ваших переименованных oldname newname содержит ошибку, то вы можете хотя бы начать с резервной копии