Utilisation de awk, sed ou grep pour analyser les Url de la page web de la source

Je suis en train d'analyser la source d'un téléchargement de la page web afin d'obtenir le lien d'inscription. Un one-liner marcherait bien. Voici ce que j'ai essayé jusqu'à présent:

Ce qui semble laisser de côté les pièces de l'URL à partir de certains des noms de page.

$ cat file.html | grep -o -E '\b(([\w-]+://?|domain[.]org)[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))'|sort -ut/ -k3

Cette obtient toutes les URL, mais je ne veux pas inclure des liens qui ont/sont les liens d'ancrage. Aussi je veux être en mesure de préciser l'domain.org/folder/:

$ awk 'BEGIN{
RS="</a>"
IGNORECASE=1
}
{
  for(o=1;o<=NF;o++){
    if ( $o ~ /href/){
      gsub(/.*href=2/,"",$o)
      gsub(/2.*/,"",$o)
      print $(o)
    }
  }
}' file.html
stackoverflow.com/questions/1732348/...
grep -E ne comprends pas non-capture de sous-modèles ou \w échappe à l'intérieur des classes de caractères. Vous avez besoin d'utiliser grep -P.
Williamson: maintenant que renvoie des résultats similaires pour le deuxième exemple, mais j'ai besoin d'être en mesure d'éliminer les liens d'ancrage et de spécifier un domain.com/folder

OriginalL'auteur Astron | 2011-03-20