Analizando URL específicas del archivo html local

Analizando URL específicas del archivo html local

Quiero analizar ciertas URL de un archivo guardadoHTML-archivo con un simple script/comando bash, para poder descargarlos más wgetadelante.
Lo que tengo hasta ahora es:

awk 'BEGIN{ RS="<a *href *= *\""} NR>2 {sub(/".*/,"");print; }' index.html >> url-list.txt

que escribe cada enlace que está dentro de mi archivo html en un documento de texto ordenado.

Sin embargo, lo que necesito son sólo enlaces específicos.

  • de un determinado dominio
  • todos los archivos .ogg, por ejemplo

todo lo que al final quedaría así:

http://www.foo.com/(randomfolder)/(randombasename).ogg

o

http://subdominio.foo.com/(carpeta aleatoria)/(otra subcarpeta aleatoria)/(nombrebasealeatoria).ogg

¡gracias de antemano!

Respuesta1

Dice que necesita hacerlo "en Bash", pero parece que quiere decir "en un script" y no "usando sintaxis pura de Bash" (hay una diferencia). Supongo que quieres el significado "en un guión".


Si ha guardado todos los enlaces en líneas separadas en un documento, puede seleccionar todos los enlaces en el dominio http://www.example.com/con, por ejemplo,

grep "^http://www\.example\.com/" filewithlinks.txt

o todos los enlaces que terminan en .oggcon

grep "\.ogg$" filewithlinks.txt

(La barra invertida que precede a los puntos sirve para escapar del .signo " ", que de otro modo significa "cualquier carácter". " \." en su lugar significa un punto literal. Sin escapar, también coincidirá con los enlaces que terminan en, por ejemplo, "logg").

También puede hacer coincidir líneas directamente en el awk comando, pero creo que sería más complicado cambiarlo de vez en cuando. La forma más sencilla es guardar la lista completa de enlaces en un archivo como lo hace y luego simplemente buscar el archivo, por ejemplo, grepcomo se indica arriba. Entonces tampoco tendrá que descargar y analizar el documento nuevamente si desea cambiar el patrón coincidente.

información relacionada