Вытяните список файлов, заканчивающихся на .csv.gz, чтобы загрузить

Как я могу перейти на веб-сайт (который требует имя пользователя и пароль) и вытащить полную ссылку на сайт всех файлов, которые заканчиваются на .csv.gz, в файл .txt (по одной строке). Я не хочу извлекать данные из подпапок.

Например, я бы хотел, чтобы следующие файлы сохранялись в my.txt

http://www.google.com/1.csv.gz http://www.google.com/xyz.csv.gz 

Но он не должен сэкономить

 http://www.google.com/extra/abc.csv.gz 

  • Получить информацию о передачах и файлах CVMFS в кеше
  • Должен ли я использовать IsoHybrid для загрузки флеш-накопителей?
  • не может sudo mv libtinfo.so.5.bak libtinfo.so.5
  • Как проверить, что работает на сервере?
  • Linux яркость экрана Debian застряла на высокой скорости в macbook
  • QCad успешно установлен, но не запускается
  • Пульт дистанционного управления
  • Есть ли разница между Linux и Unix?
  • 2 Solutions collect form web for “Вытяните список файлов, заканчивающихся на .csv.gz, чтобы загрузить”

    С протоколом HTTP, в отличие от FTP и некоторых других протоколов, нет такой вещи, как «вытягивание» списка всех файлов. Если вы хотите получить ( GET ) файл, вы должны знать его URL.

    Многие веб-серверы предоставляют удобную функцию (часто называемую autoindex), которая для URL http://site/directory/ создает HTML-страницу, содержащую список ссылок на URL-адреса формы http://site/directory/file для каждый file который существует внутри этого каталога на сервере, следовательно, предоставляет своего рода список псевдофайлов, которые клиенты могут обнаружить. Однако эта функция почти никогда не используется для каталога верхнего уровня сайта ( http://site/ ), поскольку автор сайта обычно предоставляет явную HTML-страницу для URL-адреса верхнего уровня сайта. Поэтому, если http://www.google.com/1.csv.gz существует, вы, как правило, не сможете узнать об этом, если не знаете заранее, что он есть.

    Если вы имеете дело с веб-сервером, который предлагает вам индекс файлов, то вы можете легко перевести этот список из HTML в текст с помощью некоторой обработки текста с помощью awk или sed но это будет зависеть от точного формата, в котором конкретная сеть сервер возвращает свой HTML-список …

     curl http://site/ | sed -e [....] 

    Я предполагаю, что все файлы, которые вы хотите, перечислены на индексной странице веб-сайта. Если это так, вы можете использовать текстовый браузер, такой как lynx, чтобы сбросить список URL-адресов, найденных на этой странице, затем с помощью sed извлечь те, которые вы хотите. Например:

     lynx -auth=ID:PASSWD -dump http://www.google.com | sed '1,/^References/d \:www\.google\.com/[^/]*\.csv\.gz$:!d s/^ *[^ ]* // ' >my.txt 

    Команда sed удаляет (d) все строки до конца списка ссылок (то есть ссылок на URL) в конце. Затем он удаляет строки, не соответствующие вашему шаблону ( \: вводит новый разделитель шаблонов : вместо / мы можем использовать / в шаблоне без его эскалации). [^/]* соответствует любым символам, кроме / . $ – конец строки. Затем он удаляет нумерацию lynx для URL-адресов.

    Linux и Unix - лучшая ОС в мире.