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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.