Назад | Перейти на главную страницу

переименовать несколько файлов с уникальным именем

У меня есть список из сотен имен, разделенных табуляцией, в следующем формате

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