lftpで正規表現を使用してファイル名の特定の文字列を無視する

lftpで正規表現を使用してファイル名の特定の文字列を無視する

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

関連情報