Descargando el manual 'La guía definitiva de PNG' con bash

Pues eso, hoy va a ser algo corto, el "problema" es simple, tenemos estos ingredientes: - Un manual sobre el formato PNG [ http://www.libpng.org/pub/png/book/toc.html ] - Una conexión a Internet intermitente, así que no es una posibilidad leerlo online - Pereza suficiente para no ponerse a descargarlo a mano - Ganas de trastear con bash

Y la receta, comentadita [ vacuum.sh ] o coloreado:

===============================================================================

!/usr/bin/env bash

nxt="$1"

base="$2"

Se comprueban los argumentos

if [ -z "$nxt" ] || [ -z "$base" ]; then

echo "$0 "

exit 0

fi

Mientras queden páginas

while [ ! -z "$nxt" ];do

# Se descarga

wget "$nxt"

# Se lee el nombre del archivo

for i in $(echo $nxt|sed "s/\// /g");do

   fname=$i

done

nxt=""

# Se lee el archivo en busca del link al siguiente

# ( la línea contiene align="right" y al principio está el <a href )

echo "Parsing..."

for o in $(cat $fname|sed "s/\ /%/g");do

   i=`echo "$o"|sed "s/%/\ /g"`

   l1=`echo "$i"|grep 'align="right"'`

   l2=`echo "$i"|cut -d\" -f1|grep 'href'`



   # Si se encuentran las dos cosas

   if [ ! -z "$l1" ] &amp;&amp; [ ! -z "$l2" ];then



       # Se extrae lo que está entre las comillas

       nxt="$base"`echo "$i"|cut -d\" -f2`

       echo "Next: $nxt"

       break # Ya está, pasamos a la siguiente

   fi

done

# Se comprueba que no se volvió al principio

if [ "$nxt" == "$1" ];then

   break

fi

done

Para lanzarlo contra la web de antes, habría que hacer: ./vacuum.sh "http://www.libpng.org/pub/png/book/title.html" "http:// www.libpng.org/pub/png/book/"

Sí, es bastante cutre, pero no se me ocurrió nada mejor :P.

Saludos

untagged

Introducción a NetKit ( IV ): Un puente a Internet » « Adivinando las contraseñas de la Wifi desde Android