LINUX.ORG.RU

Перевести названия кучи файлов в нижний регистр


0

0
Есть файлики вида, скажем
FILE01A.WWW (имена могут разниться или вообще цифр не содержать).
Лежат в одном каталоге. Их больше двух тысяч.
Как бы их перевести из верхнего регистра в нижний.
Не руками же.
★★★★★
Mozhet tebe pomozhet libo "sed" libo "awk"... Hotja est pod vindu proga dlja takih vot del.. Zavtra s raboty tebe skazh kak ona nazyvaetsja.
Ice_
()
Запускаешь mc, выбираешь все файлы, жмешь F6 и в поле указываешь
"\L*" и все твои имена файлов приведуться в нижний регист...
Если просто в консоли, то можно сделать в одну строку следущее

find /<твой путь> -print | while read x ; do mv $x $(echo $x | tr 'A-Z' 'a-z'); done

man tr вообщем тебе поможет....
McMCC ★★★
()
for i in *; do mv $i `echo $i| awk '{print tolower($0)}'`; done проблемы могут возникнуть с именами с пробелом - но надеюсь догадаешься, как побороть :)
SadStork
()
У меня скриптик на перле есть, если надо то мыло оставь
anonymous
()
Вопрос к McMCC: при использовании mc, т.е. "\L*", двойные кавычки надо набирать или это только для форума (типа цитаты)?
anonymous
()
>Вопрос к McMCC: при использовании mc, т.е. "\L*", двойные кавычки надо 
>набирать или это только для форума (типа цитаты)?

без ковычек конечно
McMCC ★★★
()
Огромное спасибо!
jackill ★★★★★
() автор топика
#!/bin/sh
#
# Evil Convertor
#
ls * | while read f
do
if [ -f $f ]; then
if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
fi
fi
done

## eof

Посложней будет :)
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.