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

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-адресов.

  • Как изменить адрес FROM по почте
  • Как удаленно проверять операционную систему сервера?
  • Как избавиться от сбоев питания при использовании Linux?
  • Linux делает 1 большой из 3 меньших фотографий
  • @postgres - begginer ищет помощь
  • Загрузка приложения из rc.local в rhel6.4
  • Получить информацию о передачах и файлах CVMFS в кеше
  • Linux Distro / Project для цифровой грамотности
  • Сколько меняет ядро ​​Linux за один год?
  • есть ли способ перезагрузить машину Linux, если основной диск завершится неудачей?
  • rpd через https с использованием клиента linux
  • Как использовать cap_dac_override из libcap
  • Interesting Posts

    Как проверить локальный пакет dsc (нужно проверить «раздел», «приоритет»)

    Что означает «Белое пространство» при установке ISO

    Ограничение пользователя SFTP только в их домашнем каталоге

    find и exec: почему эта команда не работает?

    Слова, которые заканчиваются на s, НО исключают слова, которые заканчиваются словами s

    выйти из системы из-за обновления пакета обновления для google-chrome?

    Увеличьте скорость слежения за клавиатурой ThinkPad Compact USB

    / dev / disk / by-uuid / не работает на одной машине

    Как перенастроить grub на резервном архиве linux на флэш-диске USB

    Можно ли использовать `type`, чтобы проверить, является ли произвольное имя допустимым именем команды?

    case multi-pattern со строками

    Как изменить разрешения от пользователя root для всех пользователей?

    Как изменить часовой пояс Hive Server

    Поддержка SSNiper SSN Scanner

    Удалить до первого появления двоеточия с помощью sed

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