Wget bestandsnaam achterhalen in script

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
Ik ben bezig met een bash downloadscript die onder andere de invoerurl en opgehaalde bestandsnaam zou moeten wegschrijven in een bestand.
Ik wil de bestandsnaam niet forceren. Ik had bedacht om een reguliere expressie los te laten op de output van wget maar dat is mij nog niet goed gelukt.
Andere optie is de output van ls -t|head -2|tail -1 te gebruiken maar dat werkt niet goed omdat de gedownloade bestanden de timestamp krijgen van de server en dus niet de huidige tijd.
Heeft er iemand nog suggesties?

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Ik mis wat je nu hebt en wat daar mis mee is, precies. Dwz, de output dus.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
CyBeR schreef op maandag 05 april 2010 @ 23:29:
Ik mis wat je nu hebt en wat daar mis mee is, precies. Dwz, de output dus.
Ik wil exact de bestandsnaam hebben zodat ik die kan gebruiken voor andere doeleinden in mijn script. Ik heb nog geen werkende deeloplossing

[ Voor 6% gewijzigd door robbertb op 06-04-2010 00:13 ]


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 14:53

Kees

Serveradmin / BOFH / DoC
gebruik -O $filename in het script? Of hoe lees je uit wat je gaat downloaden? cut -d "/" -f -1 ?

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
Kees schreef op dinsdag 06 april 2010 @ 00:08:
gebruik -O $filename in het script? Of hoe lees je uit wat je gaat downloaden? cut -d "/" -f -1 ?
-O gebruik ik maar het is mij niet gelukt om een werkende reguliere expressie met egrep te gebruiken. Voornamelijk veroorzaaakt door speciale tekens. Maar misschien kan het eenvoudiger?
Ik gebruik de url en wget krijgt dan soms van de server een andere bestandsnaam dan dat je oorspronkelijk Gé wget had, die naam van de file wil ik dus achterhalen

Acties:
  • 0 Henk 'm!

Verwijderd

Dan doe je eerst een HEAD request.

Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
Verwijderd schreef op dinsdag 06 april 2010 @ 01:08:
Dan doe je eerst een HEAD request.
Hoe bedoel je? De datum van de bestanden die je ophaalt is onvoorspelbaar dus de uitkomst van head ook. Want het gaat niet om een bestand

Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Zoek je iets van
code:
1
find . -mmin 1 -exec mv {} filenaam.nu \;

?

Want ik snap niet helemaal wat voor output je nu krijgt van je script en wat je er wel uit zou willen hebben.

Je krijgt een random naam en wilt daar een vaste waarde van maken?

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
Rainmaker schreef op dinsdag 06 april 2010 @ 08:07:
Zoek je iets van
code:
1
find . -mmin 1 -exec mv {} filenaam.nu \;

?

Want ik snap niet helemaal wat voor output je nu krijgt van je script en wat je er wel uit zou willen hebben.

Je krijgt een random naam en wilt daar een vaste waarde van maken?
Als je met wget een bestand download kan het zijn dat je van de server een ander bestandsnaam krijgt dan je misschien zou verwachten aan de hand van de url. Ik wil dus weten welk bestand wget gedownload heeft, het gaat om een script waarin vele urls gedownload worden. Ik bedacht mij met dat ik daarvoor ook gebruik kan maken van een tijdelijke directory al is dat misschien niet echt fraai

Acties:
  • 0 Henk 'm!

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 04-08 16:29

Tim

:?

Om snel een einde te maken aan de topic:
code:
1
LC_ALL=en_US wget google.com 2>&1 | awk -F '"' '/saved/ { print $2 }'

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Als de filename op zich niet belangrijk is maar je wilt gewoon weten waar je data uitkomt, genereer zelf een filename en gebruik 'curl url > filename'?

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

Dan kun je toch gewoon wget -O gebruiken? En als je het dan helemaal wil scripten:

code:
1
2
3
for test in http://server1 http://server2 ftp://server3; do
    wget -O $test.output $test
done


Of zoiets.

Ook al vind ik Tim's oplossing ook wel goed.

[ Voor 10% gewijzigd door Rainmaker op 06-04-2010 13:31 ]

We are pentium of borg. Division is futile. You will be approximated.


Acties:
  • 0 Henk 'm!

  • robbertb
  • Registratie: September 2000
  • Niet online
Tim schreef op dinsdag 06 april 2010 @ 12:12:
:?

Om snel een einde te maken aan de topic:
code:
1
LC_ALL=en_US wget google.com 2>&1 | awk -F '"' '/saved/ { print $2 }'
Dankjewel, dat is wat ik zocht :)
Pagina: 1