Fájlok átnevezése letöltés után

Fórumok

Helló!

Egy honlapról szeretnék letölteni jópár PDF filet. A problémám az, hogy a fileoknak a nevei csak egy azonosítószámot tartalmaznak pl:123142.pdf. A rájuk mutató link az ami a címüket mutatja. (Tehát a link amire "kattintani lehet" az "Üvegfestés titkai" és ez mutat a 123456.pdf-re.)

Úgy szeretném letölteni ezeket a pdf-eket, hogy a filenév a link szövege legyen.

Lehetséges ez? Mivel? Hogyan?
A wget manualját olvagattam de nem találtam ilyesfajta lehetőséget.

Köszönöm! :)

Hozzászólások

Wget esetén a -O (nagy o) paraméterrel tudod megadni a fájl nevét. Az URL-ből pl. greppel tudod kinyerni a szükséges nevet.

Ennyi bemenő adat mellett kb. ennyit lehet segíteni.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

Pontosan, illetve alternatív megoldás leszedni a pdf-eket, olyan néven, ahogy a netre szülte őket a teremtő, aztán ciklusban exiftoollal kiszedni belőlük a Title metaadatot, és azzal felparaméterezni a mv parancsot.

Ennek nyilván előfeltétele, hogy a pdf-ek pedánsak legyenek.

Ja igen, ha már mv: 3. lehetőség a csúnya névvel leszedett pdf-ek mellé leszedni az őket hivatkozó html-t, és a kedvenc editor használatával átnevező szkriptté faragni azt.

Most látom, hogy elírtam. Ha már a sed helyett grepet írtam, akkor álljon itt egy awk-os megoldás :-)


url="http://vala.hol.hu/egy/valamilyen/rendes/nevu.pdf" ; echo $url | gawk -F'/' '{ print $NF }' | xargs wget $url -O

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

ciklusban így lehet a durvasok letöltött fájlt átnevezni:

pl.:

# rename "s/index.php?menuid=5001&hopp.pdf=//" ./index.*

for i in index.*
do
mv $i $(echo $i |\
sed 's/index.php?menuid=5001&hopp.pdf/valami.pdf/g')
done

exit 0

vagy valami hasonló.
Bele kell költeni a
wget -d -c http://pdfwarez/letoltom.pdf
sorból a linket a sed-be.

---
--- A gond akkor van, ha látszólag minden működik. ---
---