FTP search ,grep using perl


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting FTP search ,grep using perl
# 8  
Old 04-23-2013
OK, I found an FTP to test with.

Code:
#!/usr/bin/perl -w
use Net::FTP;

my @str, $line, $ftp;

while($line=<STDIN>)
{
        chomp($line); # Remove newline from end of string
        push(@str, $line); # Add string to end of @str array
}

$ftp = Net::FTP->new("localhost");
$ftp->login('user', 'pass');
$ftp->cwd("path");
$ftp->binary;
#$flag=$ftp->mdtm($_);

my @filenames=$ftp->ls();
print " Total files:", $#filenames + 1, "\n";
foreach (@filenames)
{
        print $_, " Size:[", $ftp->size($_), "]", " Mtime ", scalar(localtime($ftp->mdtm($_))), "\n";

        for my $s(@str)
        {
                if(index($_, $s) >= 0)
                {
                        print $_, " matches ", $s, "\n";
                        $ftp->get($_);
                }
        }
}

$ftp->quit();

My FTP doesn't seem to have mdtm. I suspect many don't. FTP is very simple and stupid, you only get what it gives you, and that is very inconsistent.
# 9  
Old 04-23-2013
This script couldnt match the pattern i have in the file.

It did the same thing as before.

mdtm is part of Net::FTP. So it will work on any server as long as Net::FTP module was installed.
# 10  
Old 04-23-2013
Quote:
Originally Posted by ajayram_arya
This script couldnt match the pattern i have in the file.
And what pattern was that?

Quote:
mdtm is part of Net::FTP. So it will work on any server as long as Net::FTP module was installed.
This is not hypothetical. Your script throws tons of errors about mdtm on my system -- my ftp server doesn't have that.

The output of ls looks different on different FTP servers. Some show mtime -- some don't.

What ls in FTP is supposed to look like has no standard at all. FTP is very simple, stupid, and messy... That's why a perl module like this is such a blessing, it deals with that mess for you and gives you a straightforward list.

But it can't invent an mdtm out of nothing. If the other end doesn't list that, you don't get it.

The only thing you can depend on getting is the filename. You only get sizes and dates if you're lucky.
# 11  
Old 04-23-2013
Sample File name on the FTP server is 471560-99999-2013.op.gz and there are 13000 files. first 6 digits of the file name are listed in my text file. I would like to search the numerical pattern and get that list into an output file.

Below file.txt has 2 filenames.

Code:
bash-3.00$ more files.txt
450070
766133

Thank you for explaining about FTP process.
# 12  
Old 04-23-2013
It works fine here. When I put an 471560-99999-2013.op.gz in my FTP and an 471560 in the list, then run

Code:
./ftp.pl < list

...it grabs 471560-99999-2013.op.gz, putting it in the same folder I ran the script in.

Please show me more details if it doesn't work, including actual sample content from your list file and the manner in which you are running the program and program output.

Last edited by Corona688; 04-23-2013 at 03:42 PM..
# 13  
Old 04-23-2013
Code

I already presented in my previous scrap .

when i run the script . I dont get any output except the number of files on the server .

I commented out the below step.

I wanted an output to a file once it matches the pattern .

Code:
 print $_, " Size:[", $ftp->size($_), "]", " Mtime ", scalar(localtime($ftp->mdtm($_))), "\n";

Code:
$./test.pl < files.txt
Total files:10556

$ more files.txt
450070
766133

# 14  
Old 04-23-2013
I don't see that either of those strings would match 471560 . Were you expecting a range match?
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to use a grep search to search for a specific string within multiple directories?

Lets say I have a massive directory which is filled with other directories all filled with different c++ scripts and I want a listing of all the scripts that contain the string: "this string". Is there a way to use a grep search for that? I tried: grep -lr "this string" * but I do not... (3 Replies)
Discussion started by: Circuits
3 Replies

2. UNIX for Beginners Questions & Answers

Grep/awk using a begin search pattern and end search pattern

I have this fileA TEST FILE ABC this file contains ABC; TEST FILE DGHT this file contains DGHT; TEST FILE 123 this file contains ABC, this file contains DEF, this file contains XYZ, this file contains KLM ; I want to have a fileZ that has only (begin search pattern for will be... (2 Replies)
Discussion started by: vbabz
2 Replies

3. Shell Programming and Scripting

Perl - start search by using search button or by pressing the enter key

#Build label and text box $main->Label( -text => "Input string below:" )->pack(); $main->Entry( -textvariable => \$text456 )->pack(); $main->Button( -text => "Search", -command => sub { errchk ($text456) ... (4 Replies)
Discussion started by: popeye
4 Replies

4. Shell Programming and Scripting

Perl - use search keywords from array and search a file and print 3rd field when matched

Hi , I have been trying to write a perl script to do this job. But i am not able to achieve the desired result. Below is my code. my $current_value=12345; my @users=("bob","ben","tom","harry"); open DBLIST,"<","/var/tmp/DBinfo"; my @input = <DBLIST>; foreach (@users) { my... (11 Replies)
Discussion started by: chidori
11 Replies

5. HP-UX

[Solved] Unable to rename file in ftp server .Net:FTP perl

Hello All, I am trying to connect to ftp server and get the files. Also i need to rename the file in other ftp dir. rename method is not allowing me to rename the file in other dir. When i tried copy command by using net::FTP:FILE then perl says it is not installed. Can some body help me to... (2 Replies)
Discussion started by: krsnadasa
2 Replies

6. UNIX for Dummies Questions & Answers

recursive search and ftp

Could someone help me in recursive search and ftp'ing the files to remote server? The host machine will have /dir1/dira/list_of_files1 /dir1/dirb/list_of_files2 /dir1/dirc/list_of_files3 . . . so., I need to search from dir1 recursively (only one level down) and find all the files that... (1 Reply)
Discussion started by: brahmi
1 Replies

7. Shell Programming and Scripting

perl search and replace - search in first line and replance in 2nd line

Dear All, i want to search particular string and want to replance next line value. following is the test file. search string is tmp,??? ,10:1 "???" may contain any 3 character it should remain the same and next line replace with ,10:50 tmp,123 --- if match tmp,??? then... (3 Replies)
Discussion started by: arvindng
3 Replies

8. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

9. Shell Programming and Scripting

using finddepth in ftp to search for directories in perl

Hi all, I have script which downloads the build and copies onto the local machine I am able to download files in a directory, but unable to get the files in subdierctories. I am using finddepth to search for sub directories but I am unable to do so. Here is my code: ... (0 Replies)
Discussion started by: gurukottur
0 Replies
Login or Register to Ask a Question