使用
Net::SFTP::Foreign
模块,是否可以只下载具有特定扩展名的文件。例如,所有.xml
个文件
到目前为止我尝试过:
say "Downloading files...";
$sftp->rget(
REMOTE_DIR,
LOCAL_DIR,
newer_only => 'true',
wanted => qr/*\.xml/
);
这不会下载任何文件。如果我删除了wanted
选项,则会下载所有文件。
答案 0 :(得分:1)
您的模式有语法错误。如果我运行它,我会得到这个:
量词在正则表达式中没有任何关系;标记为< - HERE,m / *< - HERE .xml / at ...
那是因为*
是一个特殊字符。它不能独立存在,并且不会像在shell上那样用作通配符。删除它。
只获取XML文件的一个好的有效模式可能是
qr/\.xml$/
$
表示字符串的结尾,因此您不会下载名为foo/bar.xml/baz/
的文件夹中的所有文件。
模式将匹配包含它的所有内容,无论匹配前是什么。