Prijava
Korisničko ime:

Lozinka:

remember me

Zaboravili lozinku?

Registrirajte se!
Glavni menu
Potraga
Tko je online
17 korisnika je online (12 korisnika cita Diskusije)

članovi: 0
Gosti: 17

više...
HULK-Diskusije - Programiranje - shell skripta ne radi
Chat WIKI Kontakt
HULK Forum Index
   Programiranje
  shell skripta ne radi

Pregledavanje ovog Threada:   1 Anonimnih Korisnika

 

 Dno   Prethodna tema   Sljedeca tema
<12
  •  Ocjena Threada
      Ocijenite ovaj Thread
      Izvrsno
      Dobro
      Prosjecno
      Loše
      Užasno
Pošiljatelj Thread
Re: shell skripta ne radi
#11
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 43355
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
Znači, imaš datoteke i direktorije koji sadrže non-ascii znakove, i želiš te znakove zamjeniti sa "_"

Gnome NEMA veze s datotečnim sustavom. Znači, ne tražiš što je ok pod gnomeom nego što je ok pod datotečnim sustavom, u tvom slučaju najvjerojatnije ext3. Gnome je samo jedan od GUIa koji postoje pod linuxom. Riješi se konačno windows razmišljanja.

Naravno da ne znaš što radi ovaj njegov find. Ne znaš u biti ni što radi ta tvoja skripta, koju si frankenštajnski kreirao skupljajući komade po internetu.

Za početak, informiraj se malo o shell skriptama ovdje. Zatim, ako već misliš koristiti naredbu find, informiraj se o njoj tipkanjem

info find

Usput, v-vov find će mjenjati samo datoteke, ne i poddirektorije. I v-v koristi pipe, dok je za ovo dovoljan exec u sklopu find-a.

Najsigurnije je koristiti isključivo ascii znakove za imena datoteka, i eventualno "_" i "." znakiće, s tim da ako ne želiš skrivenu datoteku, nemoj koristiti "." na početku imena datoteke. ASCII znakove regexpom definiramo kao [A-Z][a-z][0-9], odnosno raspon di je znak jedan od ovih.

Pogledaj malo dokumentaciju koju sam ti naveo, imaš gotovih primjera s objašnjenjima, bit će ti sve jasno, a ako ti nešto ne bude jasno, pitaj.
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 23.09.2008 6:28:24
Izradi PDF od ove poruke Ispis
Vrh
Re: shell skripta ne radi
#12
Linux Master
Pridružen: 04.01.2005
Od 33 stupnja i 4 minute sjeverno, i zatim 5 koraka na zapad
Poruke: 2391
Level : 39
HP : 0 / 964
MP : 797 / 43355
EXP : 56
Grupa:
Webmasters
Registered Users
HULK
UrednikNovosti
UrednikRecenzija
UrednikLinkova
ModeratoriForuma
UrednikSekcija
UrednikBlogova
UrednikDogadjanja
UrednikDokumenata
UrednikKomentara
Offline
v-v, i ti isto prouči ABS i find dokumentaciju, jer je tvoj find nepotrebno prekompliciran. Kao prvo, find u sebi ima mogućnost regexp pretraživanja, tako da ti tr ne treba, kao drugo, find može execati naredbu na rezultat, što je brže nego pipe, kao treće, tvoj find radi samo na datotekama, ne i direktorijima.
_________________
Poći ću s vama jer volim šalu, hoću da vidim ježa budalu.

Put u Japan
Postano : 23.09.2008 6:32:18
Izradi PDF od ove poruke Ispis
Vrh
  •  v-v
      v-v
Re: shell skripta ne radi
#13
Padawan
Pridružen: 04.01.2005
Od irc.freenode.net
Poruke: 83
Level : 8
HP : 0 / 176
MP : 27 / 7945
EXP : 6
Grupa:
Registered Users
UrednikNovosti
UrednikLinkova
UrednikDogadjanja
Offline
Budem, zahvaljujem na opaskama
Postano : 23.09.2008 6:42:43
Izradi PDF od ove poruke Ispis
Vrh
Re: shell skripta ne radi
#14
Linux Master
Pridružen: 29.12.2005
Od Šibenik
Poruke: 788
Level : 25
HP : 0 / 607
MP : 262 / 25574
EXP : 30
Grupa:
Registered Users
Offline
#!/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.
_________________
-- Davor R. Bergam
Experiments, no experiences!!

Moja web stranica o Linuxu
Postano : 28.10.2008 5:28:51
Izradi PDF od ove poruke Ispis
Vrh
 Vrh   Prethodna tema   Sljedeca tema
<12

 


 Ne možete pokrenuti novu temu.
 Možete citati teme.
 Ne možete odgovarati na poruke.
 Ne možete uredivati svoje poruke.
 Ne možete brisati svoje poruke.
 Ne možete dodavati nove ankete.
 Ne možete glasati u anketama.
 Ne možete dodavati fileove porukama.
 Ne možete slati poruke bez odobrenja.
Copyright © 1995-2009 HULK web team. Sva prava pridržana. RSS. Engine: XOOPS