Dmitry E. Oboukhov wrote:
>>Доброго времени суток, многоуважемые.
>>
>>Вот для решения сабжа попробовал использовать find,
>>find ./ -type f -regex ".* .*" -exec mv {} `echo {}|tr ' ' '_'` \;
>>но не добился желаемого:
>>
>>[EMAIL PROTECTED] /tmp/testdir $ ls -1
>>1 test file.txt
>>2 test file.txt
>>3 test file.txt
>>[EMAIL PROTECTED] /tmp/testdir $ find ./ -type f -regex ".* .*" -exec mv {} 
>>`echo {}|tr ' ' '_'` \;
>>mv: `./2 test file.txt' and `./2 test file.txt' are the same file
>>mv: `./3 test file.txt' and `./3 test file.txt' are the same file
>>mv: `./1 test file.txt' and `./1 test file.txt' are the same file
>>
>>Подскажите пожалуйста где ошибся?
> 
> 
> for i in *; do
>       name_out=`echo $i|sed "s/ /_/g"`
>       if [ "$i" = "$name_out" ]; then
>               echo $i не переименовываем
>       else
>               echo $i переименовываем в $name_out
>               mv $i $name_out
>       fi
> done
Ну тогда вот так вот правильнее:
#!/bin/sh

rename()
{
    test -d "$1" && cd "$1"
    for i in *; do
        if [ -d "$i" -a "$i" != "." -a "$i" != ".." ]; then
            echo "yes: "$i
            rename "$i"
        fi
        name_out=`echo $i|tr " " "_"`
        if [ -f "$i" -a "$i" = "$name_out" ]; then
            echo $i не переименовываем
        else
            echo $i переименовываем в $name_out
            mv "$i" $name_out
        fi
    done
}

rename "."
#EOF


только зачем изобретать велосипед?
-- 
Victor Skurihin
Jabber: [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить