FTP、ワイルドカード検索でファイルをダウンロードする

FTP、ワイルドカード検索でファイルをダウンロードする

コマンドラインからftpを介して一連のファイルをダウンロードする必要があります。私がダウンロードするサーバーのフォルダ構造は次のとおりです。

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

mget複数のファイルとワイルドカードをダウンロードする可能性について知っていますが、ダウンロードにはいくつかの検索条件を適用する必要があります。

検索条件は、接続時にサーバーが存在する特定のディレクトリでそのフォルダ内のすべてのサブディレクトリを検索し、ファイルを検索して次の文字列を検索する検索基準を適用することです。

file100,file101,file102....file199

文字列条件は、この数値範囲に一致するファイルを探します。どうすればいいですか?

問題がプログラミングを介してのみ解決できる場合は、Pythonにはかなり上手なので、代替を見つけるのに問題はないでしょう。

答え1

bashコードを使ってこのソリューションを作成しました。

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

これはファイル名の3つの数字(101、102、103...、199)と一致します。echocommandをftp一致する各ファイルのコマンドで置き換えます。echo適切なコマンドを使用して正常にテストして実行してください。

パスには/path/to/file1/*検索されないサブディレクトリが含まれているため重要です。検索パスを適切に/path/to/file1/*/*変更してください。

関連情報