2014-05-13 2 views
1

Как переименовать каталог, переставляя цифры и слово в имени каталога.Назовите каталог с определенным шаблоном в Unix

например. FRA-DEV_007583-K4C-РДФ-1
FRA-DEV_007583-K4C-источник-8 FRA-DEV_007584-K4C-РДФ-19 FRA-DEV_007584-K4C-РДФ-8

вывод должен быть

FRA-DEV_007583-K4C-1-РДФ
FRA-DEV_007583-K4C-8-источник FRA-DEV_007584-K4C-9-РДФ FRA-DEV_007584-K4C-8-РДФ

ответ

0

Если у вас есть все эти файлы в том же каталоге, без каких-либо других файлов, вы можете использовать этот скрипт:

#! /bin/bash 

nums=(`ls $1 | cut -d- -f5`) 
words=(`ls $1 | cut -d- -f4`) 
files=(`ls $1 | cut -d- -f1-3`) 
complete_files=(`ls $1`) 

len=${#complete_files[@]} 

for ((i=0; i<${len}; i++)); 
do 
    newname=${files[$i]}-${nums[$i]}-${words[$i]} 
    mv $1${complete_files[$i]} $1$newname 
done 

Сохраните этот скрипт как rename.sh в каталоге ВНЕ ВИДЕО, где находятся ваши файлы. Затем выполните: bash rename.sh path/to/your/files/ не забудьте последнюю косую черту и сделайте резервную копию на всякий случай.

+0

Спасибо, что работал отлично. –

+0

Я рад, что это помогло. Если ответ решает вашу проблему, отметьте его как принятый (зеленый галочка). Это дает вам и тому, кто отвечает на бонус репутации. – jspurim

+0

Не знаете, какой зеленый тик вы говорите? он расположен вверху страницы. Я вижу одну зеленую и одну красную кнопку. –

Смежные вопросы