Попытка переименовать файлы на основе текстовых файлов

Попытка переименовать файлы на основе текстовых файлов

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

Как мне переименовать файлы из OLDв NEW?

Каждый файл содержит \nотдельное имя

СТАРЫЙ пример строки:Blah Blah Blah Campaign 2 Episode 1.mp4

НОВЫЙ пример строки:Campaign 2 Episode 1.mp4

решение1

Очень специфичный для zsh:

old=(${(f)"$(<OLD)"}) new=(${(f)"$(<NEW)"})
for o n (${old:^new}) echo mv -i -- $o $n

Удалите echo, когда будете довольны.

Или портативный:

while IFS= read -r old <&3 && IFS= read -r new <&4; do
  echo mv -i -- "$old" "$new"
done 3< OLD 4< NEW

Связанный контент