Здравствуйте.
Давно использую скрипт замены пробелов в имени файлов.
[spoiler]#!/bin/sh
_rrename () {
$number=1
cd "$1" # идем в нужный каталог
ls -1 | while read f # получаем список файлов
do
echo "$f"
_f=`echo $f | sed 's/ /_/g'` # новое имя для текущего файла
/bin/mv -nT "$f" "$_f" 2>/dev/null # переименовываем (но вообще, лучше внимательн$
echo "$_f"
if [ -d "$_f" ]; then # если каталог
_rrename "./$_f" # повторяем для него данную функцию
cd .. # и возвращаемся на уровень выше (обратно)
fi
done
}
_rrename $1
exit 0[/spoiler]
Но тут возникла необходимость "восстановить файлы" (подхватил заразу которая переименовала файлы в кракозябры).
И так... суть в том чтобы переименовывать файлы которые содержат кракозябры
строка 9 _f=`echo $f | sed 's/ /_/g'`
И вопрос как заместо s/ написать not ([a-z] or [A-Z] or [А-Я] or [а-я] or [0-9]) на bash?