[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian] OT: wget - leerzeichen in urls



David Buch hat gesagt: // David Buch wrote:

> wenn ich mit "wget -i urlinputfile" eine liste mit files downloaden
> will und in der urlinputfile bei manchen URLs leerzeichen enthalten
> sind, werden diese files nicht downgeloadet, auch, wenn wie in URLs in
> Browsern ein + anstatt der leerzeichen steht
> 
> wenn ich "wget url\ mit\ leerzeichen" mache, funktioniert das (in der
> urlinputfile allerdings so auch nicht)
> 
> weiß jemand von euch wie man das loesen koennte?

Leerzeichen und noch ein paar andere Zeichen in Reinform sind in URLs nicht 
wirklich zugelassen, sondern sollten umgewandelt werden (wie beschrieben in 
RFC 2396). Ein Leerzeichen z.B. wird dann zu "%20". wget macht das oft
automatisch, kommt aber bei Dateien mit URL-Listen durcheinander. Da hilft
das kleine Perl-Skript im Anhang. Aufruf: "urlfix URL-Datei[en]" Damit wird
aus einer Datei mit diesem Inhalt
 >---< 
http://localhost/leer- und sonder- ()=`´']#+*- zeichen.html
 >---< 
eine Datei mit diesem:
 >---<
http://localhost/~freak/leer-%20und%20sonder-%20()=%60%B4'%5D%23+*-%20zeichen.html
 >---<

bye,
-- 
                                                 __    __
 Frank Barknecht       ____ ______   ____ __ trip\ \  / /wire ______
                      / __// __  /__/ __// // __  \ \/ /  __ \\  ___\	
                     / /  / ____/  / /  / // ____// /\ \\  ___\\____ \	
                    /_/  /_____/  /_/  /_//_____// /  \ \\_____\\_____\
                                                /_/    \_\ 
#!/usr/bin/perl -wpi.bak
use URI::Escape;

chomp;
# This function replaces all unsafe characters in the
# $string with their escape sequences and returns the
# result.
$_=uri_escape($_);
$_=$_."\n";

Reply to: