Как я могу переименовать файлы из списка в Bash? - PullRequest
2 голосов
/ 24 мая 2010

У меня есть файл, который содержит такие имена файлов:

my_cool_file.xxx
my_cool_file2.xxx
my_cool_file3.xxx

У меня есть папка, которая имеет:

some_file.xxx
some_file2.xxx
some_file3.xxx

Я хотел бы, чтобы скрипт bash взял одну строку из файла с именем файла и переименовал один файл в папке.

Есть ли способ сделать это?

1 Ответ

2 голосов
/ 24 мая 2010

Примечание. Этот ответ обычно не так хорош, но он решил проблему ОП.

Все ли файлы заканчиваются на _file.xxx или _fileN.xxx?

По сути, вы хотите изменить только префикс имен файлов?

Если я правильно понимаю вашу проблему, и что файл без номера является последним в file_list.txt следующее должно сделать трюк


COUNTER=0
for FILE in `ls *.xxx | sort`; do
    COUNTER=$(($COUNTER+1))
    echo Moving $FILE to `sed -n ${COUNTER}p file_list.txt`
    #mv "${FILE}" `sed -n ${COUNTER}p file_list.txt`
done<br>

Комментарий в строке с mv, если вы хотите, чтобы фактическое движение произошло.

...