У меня есть список из сотен имен, разделенных табуляцией, в следующем формате
old_name new_name
apple orange
yellow blue
Все мои файлы имеют уникальные имена и имеют расширение * .txt и находятся в одном каталоге. Я хочу написать сценарий, который переименует файлы, прочитав мой список. Поэтому файл apple.txt следует переименовать в orange.txt. Я поискал, но не нашел быстрого способа сделать это. Я могу изменять по одному файлу за раз с помощью 'переименования' или с помощью perl "perl -p -i -e 's /// g' * .txt "и несколько файлов с помощью sed, но я не знаю, как использовать свой список в качестве входных данных и написать сценарий оболочки, чтобы внести изменения для всех файлов в каталоге. Я не хочу писать сотни команд переименования для всех файлов в сценарии оболочки. Любые предложения будут приветствоваться!
Это должно работать, поскольку это довольно стандартный bash
#!/bin/bash
while read line
do
set -- $line
echo renaming "$1.txt to $2".txt
mv "$1".txt "$2.txt"
done <input.file