Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

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");


Comment on Re^4: Net::SFTP::Foreign getting files
Select or Download Code
Re^5: Net::SFTP::Foreign getting files
by salva (Monsignor) 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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1028177]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (9)
As of 2014-09-16 23:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (53 votes), past polls