Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^4: Net::SFTP::Foreign getting files

by kofs79 (Initiate)
on Apr 11, 2013 at 14:47 UTC ( #1028177=note: print w/replies, xml ) Need Help??

in reply to Re^3: Net::SFTP::Foreign getting files
in thread Net::SFTP::Foreign getting files

Ok now I am getting the file names and downloading them the way I was hoping for with one exception. In my script I want a file "IRP_20130410" the remote server has a file named "IRP_20130410000438.txt" The remote windows machine adds 6 characters for time and the ".txt" extension. I want to be able to match the file name I am looking for and don't care about the remaining characters. So can I just put a wild card in the glob?

($file) = $sftp->glob("${file}*", names_only => 1); defined $file or die "file not found"; $sftp->get($file, "$ai_dest_day/$file");

Replies are listed 'Best First'.
Re^5: Net::SFTP::Foreign getting files
by salva (Abbot) on Apr 11, 2013 at 15:14 UTC
    yes, glob also accepts Perl regular expressions:
    ... my $start = quotemeta "$file$yesterday"; my ($file) = $sftp->glob(qr/^$start\d{6}$/, names_only => 1); ...
    But there are easier ways to do what you want. For instance, you can use a regular expression matching all the prefixes in @ai_files_day plus $yesterday plus any six digits and let mget download all the files matching:
    $sftp->setcwd($ai_dir); my $starts = join('|', map quotemeta, @ai_files_day); $sftp->mget(qr/^(?:$starts)$yesterday\d{6}$/, $ai_dest_day);

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1028177]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2018-01-18 20:58 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (214 votes). Check out past polls.