PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wget, shell und wildcards



dennis1710
18-09-2007, 14:29
Hallo an Alle,

ich habe das Problem, dass ich mit wget den "Punkt" als Wildcard nicht nutzen kann. D.h. ich möchte ein beliebiges Zeichen erzwingen.

wget -v -P /var/ftp/incoming -A ".*\.gz" -nd -nH -m ftp://alala.de

Leider interpretiert wget den Punkt nicht. Weiß jemand wie man das macht? Besten Dank.

Gruß,

Dennis

jan61
18-09-2007, 20:39
Moin,

Zitat aus "info wget":

The argument to `--accept' option is a list of file suffixes or
patterns that Wget will download during recursive retrieval. A
suffix is the ending part of a file, and consists of "normal"
letters, e.g. `gif' or `.jpg'. A matching pattern contains
shell-like wildcards, e.g. `books*' or `zelazny*196[0-9]*'.
Du kannst also nicht mit regulären Ausdrücken arbeiten, was Du in Deinem Muster versucht hast, sondern musst mit den Shell-typischen Globbing-Mustern (wie z. B. bei ls) arbeiten.

Wenn Du also alle Dateien haben willst, die mindestens ein Zeichen vor dem Punkt und die Endung .gz haben, dann solltest Du es mit "?*.gz" versuchen.

Jan

EDIT: Nebenbei - auch mit dem regulären Ausdruck ".*\.gz" erzwingst Du kein Zeichen am Anfang. Der * sagt nämlich "vorheriger Ausdruck kann 0 ... n-mal auftreten", also würde auch ".gz" die Bedingung erfüllen. Um mit Regex mindestens 1 Zeichen zu erzwingen, musst Du "..*\.gz" oder (mit erweiterten Regex) ".+\.gz" nutzen.

dennis1710
19-09-2007, 13:18
Jo, vielen Dank Jan.

Ich sollte wohl noch einmal etwas über reguläre Ausdrücke lesen. Funktioniert aber soweit.

Danke