[+] Zmiana nazw plików ze spacjami
: 21 kwietnia 2009, 18:18
Witam.
Na wstępie zaznaczę, że jestem zielony jeśli chodzi o programowanie, dopiero zaczynam ale mam ambicje nauczyć się jak najwięcej, więc proszę o wyrozumiałość.
W związku z tym że potrzebuję masowo zmienić nazwy plików w katalogach, postanowiłem napisać sobie skrypt. Nie było by żadnego problemu, gdyby nie to że potrzebując zamienić plik ze spacjami w nazwach (dokładnie to zamienić spacje na podkreślenia). Tak więc, wpadłszy na "genialny" pomysł wykorzystania pętli for skrypt napisałem, ale srogo się zawiodłem gdy spostrzegłem że pętla "widzi" fragmenty nazw pomiędzy spacjami jako osobne pliki.
Dlatego zwracam się z prośbą do Was - bardziej kompetentnych o pomoc. Oto kod mojego skryptu (pewnie jest prostacki, ale jestem początkujący w bashu):
I jeszcze jedna kwestia, nie związana z powyższym ale szkoda zakładać kolejny temat. Wrzuciłem sobie skrypt flac2mp3 do folderu /usr/bin/, ale przy wywoływaniu tego programu jawi mi się taka oto informacja:
I ostatnia prośba. Możecie polecieć dobre materiały do nauki basha? Najlepiej po polsku i w stylu "bash for dummies". Oraz, czy sądzicie że zakup książki "bash. Receptury" będzie sensownym wyborem?
Dziękuję za odpowiedzi i pozdrawiam.
Na wstępie zaznaczę, że jestem zielony jeśli chodzi o programowanie, dopiero zaczynam ale mam ambicje nauczyć się jak najwięcej, więc proszę o wyrozumiałość.
W związku z tym że potrzebuję masowo zmienić nazwy plików w katalogach, postanowiłem napisać sobie skrypt. Nie było by żadnego problemu, gdyby nie to że potrzebując zamienić plik ze spacjami w nazwach (dokładnie to zamienić spacje na podkreślenia). Tak więc, wpadłszy na "genialny" pomysł wykorzystania pętli for skrypt napisałem, ale srogo się zawiodłem gdy spostrzegłem że pętla "widzi" fragmenty nazw pomiędzy spacjami jako osobne pliki.
Dlatego zwracam się z prośbą do Was - bardziej kompetentnych o pomoc. Oto kod mojego skryptu (pewnie jest prostacki, ale jestem początkujący w bashu):
Kod: Zaznacz cały
#!/bin/bash
for i in $1*.flac
do
ls $1 | sed -e 's/ /_/g' | xargs -0 mv $1*.flac
done;
która mnie dziwi gdyż bash jest, na co wskazuje polecenie "which bash".line 1: #!/bin/bash: No such file or directory
I ostatnia prośba. Możecie polecieć dobre materiały do nauki basha? Najlepiej po polsku i w stylu "bash for dummies". Oraz, czy sądzicie że zakup książki "bash. Receptury" będzie sensownym wyborem?
Dziękuję za odpowiedzi i pozdrawiam.