2016-12-27 2 views
-1

У меня есть некоторое имя файла в TXT-файле и другом имени файла в другом .txt-файле. Я хочу переименовать файлы, хранящиеся в этой папке, из имени файла в текстовом файле по строкам.Как переименовать файлы с именем файла из одного txt-файла в имя файла из другого txt-файла в bash?

ОТ:

$cat oldname.txt 
file1.mp4 
file2.mp4 

TO:

$cat newname.txt 
video1.mp4 
video2.mp4 

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

$mv file1.mp4 video1.mp4 

ответ

1

Используйте правильный цикл над файлом, чтобы переименовать его с помощью bash. Откройте файлы отдельно в разных дескрипторах файлов.

#!/bin/bash 

while read oldname <&3 && read newname <&4 
do 
    mv "$oldname" "$newname" 
done 3<oldname.txt 4<newname.txt 
+0

Спасибо, что сработало для меня .. –

+1

@ Иниан: это действительно работало для меня. Узнал новую вещь от вас, спасибо! Я поддержал ваш ответ! – codeforester

0

Try:

while read oldname; do 
    read -u 3 newname 
    echo mv $oldname $newname 
done < oldname.txt 3< newname.txt 

Это просто эхо команд. Если вам нравится результат, опустите echo.

Смежные вопросы