Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witejcie.
Mam sobie listę plików
./ftp/najebane/190/Economy - 14.mod ./pub/modules/Protracker/XTD/## economy 14 ##.mod ./ftp/najebane/190/EspanaMeFalta.mod ./pub/modules/Protracker/Dockers/espana me falta.mod ./ftp/najebane/190/Entropy.mod ./pub/modules/Protracker/Luminance/entropy.mod ./ftp/najebane/190/Evocation.mod ./pub/modules/Protracker/FBY/evocation.mod
Chciałbym dla każdego elementu z tej listy zaczynającego się od './ftp/n' wykonać akcję 'mv TO ../trush'.
Wiem, brzmi trywialnie, bo niby w pytaniu już zawarta jest odpowiedź, jednak nie umiem sobie poradzić.
Logicznie rzecz ujmując,
mv `grep './ftp/n' lista` ../trush
rozwiązywałaby sprawę, tymczasem dupa. grep zwraca mi jedną długą linię w stylu
./ftp/najebane/190/Economy - 14.mod ./pub/modules/Protracker/XTD/## economy 14 ##.mod ./ftp/najebane/190/EspanaMeFalta.mod ./pub/modules/Protracker/Dockers/espana me falta.mod ./ftp/najebane/190/Entropy.mod ./pub/modules/Protracker/Luminance/entropy.mod ./ftp/najebane/190/Evocation.mod ./pub/modules/Protracker/FBY/evocation.mod
Znowu konstrukcja
for i in `cat lista`echo "$i";echo 'NEWLINE'
terminuje linię po białym znaku. Chciałbym wiedzieć co jest tego przyczyną, może ktoś się spotkał i jest mi w stanie powiedzieć dlaczego bash zachowuje się tak, a na ten przykład w Pajtonie takie rzeczy działają jak należy.
link do listy (2mb plaintextu)
EDIT
FFS, solved.
Dla potomnych: IFS=$'\n'. Teraz pętla for działa jak należy.
Ostatnio edytowany przez lis6502 (2010-04-14 09:27:20)
Offline
Dla potomnych:
mv ftp/n* ../trush
To naprawdę jest takie proste i żadnych pętli nie trzeba tam mieszać. A jeśli już trzeba, to na pewno nie jest konieczne mieszanie w to grep-a czy czegokolwiek innego.
Offline