ďťż
 
 
   Skrypt zmieniający nazwy plików
 
 

Tematy

 
    
 

 

 

 

Skrypt zmieniający nazwy plików





meliorus - 18-07-2009 22:42
Witam.
Posiadam serwer dedykowany z przeznaczeniem do torrentów i mam do was pytanie.
Znacie może jakiś sposób na automatyczne konwertowanie nazw, że tam gdzie jest: spacja aby było: _ oraz zamiast ( ) było: [ ] Od pewnego czasu ręczna zmiana tych że parametrów mnie strasznie irytuje.
Czy można zrobić takie coś poprzez jakiś automatyczny program, skrypt aby wszystkie katalogi miały zmienioną nazwę?
Z góry dziękuję za pomoc.



fnmirk - 18-07-2009 23:21
meliorus, przejrzałeś forum? Jest na pewno przedstawiony taki skrypt.



meliorus - 18-07-2009 23:27
Przeglądałem ale nic nie znalazłem.



Stawi - 19-07-2009 03:59
Napisane na "kolanie", ale powinno dzialac: #!/bin/sh
for old in *; do
        new=$(echo $old | tr " ()" "_[]")
        mv "$old" "$new"
done



meliorus - 19-07-2009 15:11
nom działa, ale przydało by się aby był taki skrypt co zmieni we wszystkich katalogach i podkatalogach to noi wykosi nawiasy żeby np. zamiast takiego ( ) byl [ ] Bo takie nawiasy ( ) wywalają mi: -bash: syntax error near unexpected token `('



Stawi - 19-07-2009 17:52
meliorus, zamienia tak jak chciałeś - sprawdź manuala tr.
A żeby działało też na podkatalogach to trzeba już się więcej pobawić: #!/bin/sh
if [ -z "$1" ]; then dir='.'; else dir=$1; fi
for old in "$dir"/*; do
    new=$(echo $old | tr " ()" "_[]")
        if [ "$old" != "$new" ]; then
            mv "$old" "$new"
        fi
        if [ -d "$new" ]; then
                $0 "$new"
        fi
done Dodatkowo jest mały bugfix - sprawdza czy trzeba zmieniać czy nie.



meliorus - 19-07-2009 19:24
Wrzuciłem ten skrypcik do pliku name.sh i gdy w konsoli wywołuję go poleceniem: sh name.sh to niestety nie działa.
Bo tyle ile mam katalogów tyle mi bierze i wywala linijek takiego komunikatu:
name.sh: line 9: name.sh: command not found Błąd jaki tam wyświetla ale to naprawdę działa.
Dziękuję ci naprawdę za pomoc.



Stawi - 19-07-2009 20:43
chmod +x name.sh albo linie $0 "$new" zamien na sh $0 "$new" Pozdro ;)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis