Вот улучшенный сценарий:
#!/bin/sh
cat file.txt |while read url
do
lynx -listonly -dump "$url"
done |
awk '/^[ ]*[1-9][0-9]*\./{sub("^ [^.]*.[ ]*","",$0); print;}'| \
sort -u
, позволяющий использовать любой тип URL, распознаваемый lynx (включая ftp, например). Скрипт сортирует результат, удаляет дубликаты (что lynx сам по себе не сделает).
Дополнительная литература: