LINUX.ORG.RU
решено ФорумAdmin

Расширение файлов. Help!!! bash sh perl

 , ,


1

3

Доброго времени суток.
Всала проблема.
Дано:

путь=/opt/samba

Что нужно.
Все расширения файлов перевести в нижний регистр рекурсивно
т.е. все что после последней точки
фото.jpg => фото.jpg
фото1.JPG => фото1.jpg
фото1.ПЕрвыйДубль.МОЕрасШиренИЕ => фото1.ПЕрвыйДубль.моерасширение

в одном каталоге не может быть
фото.jpg
фото.JPG

т.е. на выходе один файл фото.jpg это исключено в условии
Время не имеет значение т.е. скорость выполнения.

★★

zsh# zmv "(**/)(*).(*)" "\$1\$2.\${(L)3}"
arto ★★
()

smb.conf, case sensitive = No, preserve case = No

sin_a ★★★★★
()
Ответ на: комментарий от anonymous

Наверное лучше
find $path -type f -exec…
Зачем директории-то обрабатывать.
Ну или find $path ! -type d -exec… что-бы зацепить и всякие там симлинки.

MrClon ★★★★★
()

find . |perl -e 'use utf8; use File::Copy qw(move); while (<STDIN>){chomp; if (/avi$/i){/^(.*)(\.[\S]{3})$/; $out = $1.uc($2); print «move $_ to $out\n»; move $_, $out;}}'

не тестировал )

anonymous
()

Кстати, самба умеет игнорировать регистр.

thesis ★★★★★
()

Всем спасибо. Помогло.

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