Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

andreyefgs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
 
#!/bin/bash
 
count=0
 
all_dir=()
 
echo > /tmp/ftp_list.log
 
#/////////////////Получение списка каталогов
 
IFS=$'\n'
function get_dirs()
{
 
  dirs=()
 
  url="$1"
 
  all_dir+=("$url")
 
  arr=($(curl "$url"))
 
  for f in "${arr[@]}"; do
    col1=$(echo "$f" | awk '{print $1}')
    col9=$(echo "$f" | awk '{print $9}')
    if [[ "$col1" =~ ^d.*$ ]]; then
      dirs+=("${url}${col9}/")
    fi
  done  
 
   
  for d in "${dirs[@]}"; do
    get_dirs "$d"
  done
   
}
 
 
get_dirs "ftp://ftp.ncftp.com//"
 
 
#/////////////////Получение списка файлов
 
for d in "${all_dir[@]}"; do
  arr=($(curl "$d" | egrep -i '^[^d].*\.(gz|bz2)' | awk '{print $NF}'))
  for f in "${arr[@]}"; do
    echo "${d}${f}" >> /tmp/ftp_list.log
    let count++
  done
done
 
 
echo "Finish!"
echo "${count} files"
 
 


Всего записей: 1533 | Зарегистр. 16-10-2005 | Отправлено: 17:50 21-02-2020 | Исправлено: andreyefgs, 17:51 21-02-2020
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » UNIX » UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru