Вытяните список файлов, заканчивающихся на .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 

  • Изменение linux для разных плат
  • Эхо переменная columnwise
  • Почему Unix все еще используется, если Linux основан на нем, а Linux - бесплатно?
  • Linux: отслеживание на выходе существующего процесса
  • Как создать нового пользователя в файловой системе только для чтения?
  • Настройка FTP-сервера с общим каталогом
  • Можете ли вы «зарезервировать память» для сеанса пользователя?
  • Есть ли разница между 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-адресов.

    Interesting Posts

    Компиляция ntfs-3g из источника не дает ntfs-3g двоичного кода

    Кто должен владеть файлами, совместно используемыми группой, и куда они должны идти

    мы повторно запустим `createrepo` после копирования новых файлов в репозитории

    PHP выкидывает несоответствие версии ошибки с плагином MySQL

    Существует ли FUSE, который позволяет прозрачно обращаться к инкрементным резервным копиям?

    Почему копирование занимает намного больше времени, чем время запроса DNS?

    Linux Fedora: могу ли я сохранить то, что я делаю, чтобы все было восстановлено, когда я снова включился

    Samba дважды запрашивает пароль

    / proc / self / maps – 3-й отображаемый фрагмент файла?

    Могут ли gdb отлаживать корневые программы suid?

    Как установить ext3, ext4 на VDI VirtualBox HDD?

    Как изменить эти правила iptables, чтобы связать HTTP-трафик с моим VPN-соединением?

    Почему в Linux существует несколько папок для исполняемых файлов?

    Как восстановить базы данных MySQL, которые были выгружены из phpMyAdmin?

    Как я могу постоянно изменять IP-адрес и шлюз?

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