bubi Napisano Lipiec 25, 2011 Zgłoszenie Share Napisano Lipiec 25, 2011 Witam mam problem z napisaniem skryptu, potrzebuje aby wyszukiwał on w danym katalogu plików z rozszerzeniem .txt i .avi a następnie przenosił je do innego katalogu a więc miał by przykładowo wyszukać plików 111.avi i 111.txt a następnie przenieść je do katalogu np. movie zależy mi na tym aby przenosił tylko jeśli będą te dwa pliki czyli dajmy na to jeśli znajdzie sam 111.avi to ma nic z nim nie robic natomiast jesli skrypt by wyszukiwał jeszcze plików zawierających w nazwie "PL" i przenosil je do tego samego katalogu to był bym w pełni szczęśliwy (chociaż to akurat umiem napisac). wymyśliłem taki szkielet (oczywiscie to w nawiasach zmienił bym na mv) #!/bin/bash find /home/movie/ -type f -iname \*.avi | while read -r line ; do dir=${line%/*} name=${line##*/} ( cd /home/bubi/movie/ qnapi "$name" ) done był bym wdzięczny za pomoc, oczywiście nie jest to żadna praca domowa Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morsik Napisano Lipiec 25, 2011 Zgłoszenie Share Napisano Lipiec 25, 2011 Ja bym poszukal tylko .avi i potem zrobil ifa czy plik .txt o takiej samej nazwie istnieje. Jak latwo zmienic fragment nazwy pliku? Podam Ci mój skrypt do konwertowania obrazków, moze Ci podpowie: for f in * do if [ ! -f "./levelshots/etwolf/${f%tga}png" ]; then echo " ${f%tga}png" convert "$f" "./levelshots/etwolf/${f%tga}png" fi done Jak widzisz, ${f} to zmienna, jednak mozesz wyciac z niej koncowe litery (w Twoim przypadku ${f%avi} i zamienic na txt w celach sprawdzenia, czyli np: if [ -f "${f%avi}txt" ] then mv ${f} ${nowe_miejsce} mv ${f%avi}txt ${nowe_miejsce} done To tak bardzo mniej wiecej... kod powyzej pisany z glowy, wiec skladnia moze byc niepoprawna. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się