Aqui está um script aprimorado:
#!/bin/sh
cat file.txt |while read url
do
lynx -listonly -dump "$url"
done |
awk '/^[ ]*[1-9][0-9]*\./{sub("^ [^.]*.[ ]*","",$0); print;}'| \
sort -u
permitindo qualquer tipo de URL reconhecido pelo lynx (incluindo ftp, por exemplo). O script classifica o resultado, elimina duplicatas (o que o lynx não fará sozinho).
Leitura adicional: