コマンドラインから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)と一致します。echo
commandをftp
一致する各ファイルのコマンドで置き換えます。echo
適切なコマンドを使用して正常にテストして実行してください。
パスには/path/to/file1/*
検索されないサブディレクトリが含まれているため重要です。検索パスを適切に/path/to/file1/*/*
変更してください。