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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-04-14 08:29:58

  lis6502 - Łowca lamerów

lis6502
Łowca lamerów
Skąd: Stalinogród
Zarejestrowany: 2008-12-04

[+] Iterowanie po liście plików- bash

Witejcie.
Mam sobie listę plików

Kod:

./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,

Kod:

mv `grep './ftp/n' lista` ../trush

rozwiązywałaby sprawę, tymczasem dupa. grep zwraca mi jedną długą linię w stylu

Kod:

./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

Kod:

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

 

#2  2010-04-14 15:25:03

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: [+] Iterowanie po liście plików- bash

Dla potomnych:

Kod:

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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)