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/.
Strony: 1
Witam! Mam takie szybkie pytanie - wie ktoś może jak najprościej wykonać kopiowanie pliku
spośród wielu innych w bashu? Tzn mam katalog A w którym znajdują się różne pliki np:
test.2011.09.11.13.33.DAT
test.2011.09.11.13.27_Log.DAT
test.2011.09.10.13.27_Log.DAT
test.2011.09.10.13.33.DAT
test.2011.09.09.13.27_Log.DAT
test.2011.09.09.13.33.DAT
ja chciałem kopiować do katalogu B tylko plik który zawiera w nazwie datę wczorajszą i nie jest to log.
Czyli w powyższym przypadku to test.2011.09.11.13.33.DAT. Był bym wdzięczny za podpowiedź.
Ostatnio edytowany przez debbie (2011-09-12 08:07:52)
Offline
nie sprawdzałem czy działa, ale z grubsza w ten sposób:
find katalog ! -name "*Log*" -name "*DATA*" -exec cp '{}' dokąd ';'
Offline
DZIĘKÓWKA WIELKA! O to właśnie chodziło!
Offline
Można też tak:
shopt -s extglob cp test.$(date --date=yesterday +%Y.%m.%d)!(*_Log*).DAT cel
Albo tak, o ile te pliki są w jednym katalogu:
for file in /sciezka/do/katalogu/*; do if basename "$file" |grep $(date --date=yesterday +%Y.%m.%d) |grep -q -v "_Log"; then cp "$file" cel; fi; done
W drugim przypadku zamiast grep-ów można użyć konstrukcji case. Druga konstrukcja powinna też działać ze wszystkimi powłokami.
Offline
Strony: 1