Überprüfen Sie für den gültigen link (URL)

War ich zu Lesen, obwohl diese andere Frage die hat einige wirklich gute regex ist für den job, aber soweit ich sehen kann nicht von Ihnen arbeiten mit der BASH-Kommandos BASH-Befehle nicht unterstützen, solch komplexe rexeg.

if echo "http://www.google.com/test/link.php" | grep -q '(https?|ftp|file)://[-A-Z0-9\+&@#/%?=~_|!:,.;]*[-A-Z0-9\+&@#/%=~_|]'; then 
    echo "Link valid"
else
    echo "Link not valid"
fi

Aber das funktioniert nicht, da grep -q funktioniert nicht ...

Bearbeiten, ok ich habe erkannt, dass grep hatte eine "extended-regex" (-E) option, die scheint es zu schaffen. Aber wenn jemand eine bessere/schnellere Weg, ich würde immernoch gerne hier darüber.

Möchten Sie vielleicht zu prüfen, Ihre Beweggründe für diese Frage. Programmierer versuchen zu tun, statische Auswertung von URL/URIs und e-mail-Adressen, die Sie anzeigen können, werden syntaktisch gültig, aber sagt Ihnen nichts über Ihre Zugänglichkeit. Zum Beispiel http://www.example.com/bogus#fragment immer syntaktisch gültig und wird (vermutlich) immer einen 404 Fehler zurück.
Diese Funktion braucht nicht zu wissen, ob die links funktioniert oder nicht, nur, dass es ein link ist.
Was ist eine URL, die nie lokalisiert eine Ressource? Warum einmal die Mühe zu überprüfen?

InformationsquelleAutor Mint | 2010-07-06

Schreibe einen Kommentar