FTP, baixe arquivos por critério de pesquisa de caractere curinga

1

Eu preciso baixar uma série de arquivos em ftp em uma linha de comando. O servidor que estou baixando tem uma estrutura de pastas que é assim:

/path/to/file1/abcfile111def
/path/to/file1/abcfile222def
/path/to/file1/abcfile187def
/path/to/file1/abcfile139def
/path/to/file1/abcfile209def

Eu sei que é possível usar mget para baixar vários arquivos e o potencial de curingas, mas preciso aplicar um pouco de critérios de pesquisa ao download.

O critério de pesquisa é que, a partir de um determinado diretório em que estou quando conectado ao servidor, quero pesquisar todos os subdiretórios dessa pasta e procurar arquivos e aplicar um critério de pesquisa que procure as seguintes sequências:

file100,file101,file102....file199

O critério de string procurará arquivos que correspondam a esse intervalo de números. Como posso fazer isso?

Se uma solução só é possível através da programação, eu sou bastante proficiente com python, então isso não será um problema em termos de encontrar uma alternativa.

    
por cd123 13.12.2017 / 11:17

1 resposta

0

Eu criei esta solução usando o código bash:

for i in /path/to/file1/*/*;
do 
    if [[ ${i##*[[:alpha:]]} =~ [[:digit:]][[:digit:]][[:digit:]] ]]
    then 
         echo $(realpath "$i")
    fi
done

Corresponde aos três dígitos (101, 102, 103 ..., 199) no nome do arquivo. Substitua o comando echo pelo comando ftp de cada arquivo correspondente. Por favor, teste com o comando echo e corra quando estiver bem.

O caminho é importante, pois /path/to/file1/* não pesquisará, pois contém subdiretórios com subdiretórios, portanto, o caminho de pesquisa deve ser /path/to/file1/*/* . Por favor, mude de acordo.

    
por 14.12.2017 / 01:30

Tags