
У меня есть каталог, полный имен файлов, которые нужно изменить. Мне не нужно просто переименовать суффикс или префикс, а нужно полностью переименовать файлы.
У меня есть новые имена файлов, содержащиеся в файле new_names.
Какую команду можно использовать для чтения имен, содержащихся в new_names, и переименования файлов в каталоге?
решение1
Вы можете использовать это для создания списка mv
команд:
paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}'
Если все выглядит хорошо, то вы можете выполнить это с помощью:
cd /path/to/files
$( paste /path/to/new_names <(ls /path/to/files | grep -v new_names) | awk '$2 !~ /^$/ {print "mv " $2,$1}' )