Strona 1 z 1

[+] bash - filtrowanie nazwy pliku

: 14 kwietnia 2010, 21:28
autor: Portek
Witam.
Mam funkcję:

Kod: Zaznacz cały

S_KATALOG_DOC="/var/www/dm"; # katalow w ktorym beda spakowane pliki
S_DIR="/home/hltv/DM"; # katalog z plikami do pakowania


function hltv_pak() {
if [ -e $S_KATALOG_DOC ]; then
find $S_DIR/cstrike/*.dem -mmin +2 -exec mv {} $S_KATALOG_DOC/ \;
gzip -1f -S .zip $S_KATALOG_DOC/*.dem

else
mkdir $S_KATALOG_DOC
find $S_DIR/cstrike/*.dem -mmin +2 -exec mv {} $S_KATALOG_DOC/ \;
gzip -1f -S .zip $S_KATALOG_DOC/*.dem
fi
}
Pliki się pakują, przenoszą itp. Potrzebuję dodać jednak jeszcze jedną funkcję, mianowicie potrzebuję przefiltrować nazwę pliku, podzielić ją na części i wysłać zapytanie do bazy, która doda nowy rekord z wcześniej pobranymi częściami z nazwy pliku. Pliki noszą przeważnie nazwę:

Kod: Zaznacz cały

demo-1004132221-nazwa_zmienna*.dem.zip 
* nazwa która za każdym razem się zmienia

Pierwsza część pozostaje bez zmian, kolejne 6 znaków po "-" to data (rok, miesiąc, dzień), a ostatnie 4 to czas. Pytanie jak pobrać tylko urywki nazwy "od - do"?

Edycja:
W ostateczności pozostaje wyszukanie plików, zapisanie ich nazw do pliki i pobranie do zapytania, ale wtedy też mile widziany jest podział, który opisałem powyżej.

Dodane:
Przepisałem basha do perla i problem, że tak powiem usunięty, nie do końca tak jak chciałem, jednak działa.

Do zamknięcia.