mget を使用して、ディレクトリから abc_yyyymmdd_hhmmss.csv という特定のファイルをインポートします。フォルダのサンプルファイル:
abc_20221202_145911.csv
abc_20221202_145921.csv
abc_20221202_145941.csv
abc_20181202_145941.csv
しかし、hhmmss部分は無視したいと思います。 abc_20221202_*.csvを含むすべてのファイルをインポートしたいです。
mget.hに* myコードを含める方法は次のとおりです。
File=abc
Date=20221202
Filename=$File$Date"_*".csv
// Assume I have sftp connection established and I am in directory //where files with above naming convention are present. As I can //download the file when hardcoding exact file name during testing
conn='lftp $protocol://$user:$password@$sftp_server -p $port <<DOWNLOAD>/error.log
cd $path
mget $Filename
DOWNLOAD'
スクリプトはファイルを見つけることができますが、サーバーから検索することはできません。ただし、*を削除して完全なファイル名abc_20221202_145941.csvを指定すると、ファイルがダウンロードされます。 *がファイル検索に問題を引き起こす理由
答え1
コメントするほど評判が悪いです。
手動でftpと入力して実行しましたかmget abc_20221202_*.csv
? - スクリプトの外でも動作しますか?
また、私が読んだいくつかの記事では、cd
まずフォルダに移動してからmget abc_20221202_*.csv
。
他の記事では、mgetをフルパスで実行する必要があることが示されているのでmget /full/path/to/files/abc_20221202_*.csv
。