LINUX.ORG.RU

Массовое переименование из терминала [SOLVED]

 


0

1

Собственно в папке овер 2ГБ файлов, у большинства в названии есть пробел, скобы, тильды и другой хлам. Как из терминала переименовать все файлы на «безопасные» варианты, заменив все !isalnum на «_» (нижнее подчёркивание)?



Последнее исправление: ThisNameWasFree (всего исправлений: 1)

В цикле читаешь имя файла, заменяешь регекспом плохие символы на «_», даешь файлу новое имя.

Deleted
()
Ответ на: комментарий от nexeuse

В целом работает, но отсутствует экранирование, что приводит к «bash: syntax error near unexpected token `('» при попытке исполнения команды. Есть ли простой способ обойти это, не дописывая замену ) => \)?

ThisNameWasFree
() автор топика

http://search.cpan.org/dist/rename/

$ touch '@«$ |>*'
$ ls -1
@»$ |>*
$ perl-rename 's/[^[:alpha:][:digit:]]/_/g' *
$ ls -1
_______
$
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.