Re: shell skripta ne radi

Poslao gigolo on 28.10.2008 10:28:51
#!/bin/bash
cd Pomocni
valid="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_./"
find . | while read f
 do
j=1
z=$f
        d=$(echo ${#f})
        while [ $j -lt $d ]; do
               c=$(echo ${f:j:1})
                k=`echo $valid | grep -i "$c"`
                if [ "$k" == "" ]; then
  z=`echo ${z//"$c"/"_"}`
                fi
                let j=j+1
      done
   mv "$f" "$z"
done


Ovo je konačna poboljšana verzija nakon pustog rada.
Ima manu, ako rinejma folder onda ne prepoznaje fajlove u njemu, što je logično jer je path izmjenjen. Treba je pustiti nekoliko puta u ovisnodti o broju nivoa podfoldera ili smisliti nešto pametnije.
VAŽNO: Ne puštati u /home ili /home/user jer zezne skrivene sistemske fajlove, već sve što se obrađuje treba staviti u jedan direktorij i u njemu pustiti skriptu.

Ova poruka je od: http://www.linux.hr/newbb/viewtopic.php?forum=8&topic_id=1889&post_id=12046