LINUX.ORG.RU

Переменовать много каталогов

 ,


0

2

Есть много каталогов вида:

work1 Иванов ИИ
work2 Петров АП
work1 Сидоров ВВ
Надо привести к виду:
Иванов ИИ work1
Петров АП work2
Сидоров ВВ work1

Думаю это сделать с помощью rename и регулярных выражений, но что то не взлетает.

Если сделать

ls | sed -re 's/^(work[1-3]) ([^\r]+) ([А-Я]{2})$/\2 \3 \1/'
, то всё замечательно вроде бы думаешь подсунуть это rename но она почему то это игнорирует.

Она вообще какая то странная.

Вот тут http://tips.webdesign10.com/how-to-bulk-rename-files-in-linux-in-the-terminal описано использование, а у меня rename на это ругается, говорит синтаксис не правильный.

★★★★

I believe the Perl-based rename command is only available on Debian-based Linux distros, but there are instructions on adding it to other distros below

Скорее всего у тебя просто rename из util-linux, который не знает ничего про какие-то там регекспы.

Тебя спасут shell substitutions:

$ for i in *; do mv -iv "$i" "${i#* } ${i%% *}"; done
‘work1 Иванов ИИ’ -> ‘Иванов ИИ work1’
‘work1 Сидоров ВВ’ -> ‘Сидоров ВВ work1’
‘work2 Петров АП’ -> ‘Петров АП work2’

thriller ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.