awk (por padrão) usa espaços em branco como separadores de campo, e lynx está renderizando um espaço em branco em um url despejado como um espaço em branco. Contornar isso como sugeri em um relatório de bug:
lynx -listonly -dump http://www.somesite/here/ | \ awk '/\.pdf$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); print}' > ~/Desktop/links.txt
Se o conteúdo estiver na codificação UTF-8, o lynx cancela o texto > (desfaz a codificação de URL, como %20
), mostrando um espaço em branco neste case (fazendo com que dois ou mais campos para awk, dependendo do número de espaços em branco no nome).
Esse escape foi feito para o Debian # 398274 , em 2013 (ou seja, você tenho esse recurso com o Ubuntu 18.04).
A adição da opção -listonly
reduz o número de correspondências incorretas, procurando apenas na lista de URLs.
Se você quisesse pesquisar vários tipos de arquivo, poderia listar os sufixos como alternativas na expressão regular, por exemplo, algo assim:
awk '/\.(pdf|odt|doc|docx)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); print}' > ~/Desktop/links.txt