
Я пытаюсь переименовать каталог, полный файлов, на основе содержимого двух текстовых файлов. 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