переименовать файл с 2 списками в bash - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть 2 текстовых файла, old.txt со списком всех файлов необходимо переименовать и new.txt с новыми именами.Например, old.txt

23654.jpg
hello world.doc
ok, it's done.docx

new.txt

2018.jpg
old.doc
...

Я хотел построчно читать эти файлы и использовать их в аргументах с командой mv.Я могу сделать это с одним файлом (while read line), но я не знаю, как управлять вторым файлом ...

В заключение я хочу использовать 2 файла в качестве источника аргументов для другой команды bash..

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 15 сентября 2018

Вы можете использовать другой read с другим FD:

while IFS= read -r old_name && IFS= read -r new_name <&3; do
    mv -- "$old_name" "$new_name"
done <old.txt 3<new.txt

Или с использованием paste и GNU xargs (для опции -d):

paste -d'\n' {old,new}.txt | xargs -d'\n' -n2 mv --
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...