if($line = m/$string/) { print "$line\n"; }

--- "Avadhani, Subramanya"
<[EMAIL PROTECTED]> wrote:

> Hi list,
>       I have written a small script in Perl to take input
> filename,
> string to search and outfilename. This script
> currently searches the
> string in a file and writes the same string to the
> outfile(if found)also
> display the same on console. I want to change the
> functionality to work
> something like grep command in Unix. I want the
> entire line which is
> surrounding the string instead of just the sting,
> how do I do it ..?
>       I am pasting the script below, which will search
> for a string
> say Subramanya and prints just the input string from
> a file test.txt
> say. Please also advise on whether I can make it
> more powerful to search
> from multiple files etc.
> 
> 
> #!/usr/local/bin/perl
> ####### Accept Input file name
> print ("Enter the Input file name : ");
> $file = <STDIN>;
> ####### Accept the expression to search
> print ("Enter String to search :");
> $str = <STDIN>;
> ####### Accept Output file name
> print ("Enter the Output file name : ");
> $outfile = <STDIN>;
> chomp ($outfile);
> chomp ($str);
> chomp ($file);
> 
> #### File open operation fails if file doesn't exist
> (Exception)
> 
>  unless (open(MYFILE, $file)) 
>       {
>       die("Cannot Open Input file\n");
>       }  
>    $line = <MYFILE>;
>           while ($line ne "") 
>              {
>                   while ($line =~ /$str/g) 
>                    { 
>                    $match = $&;
>                    print ("$match\n"); 
>                    open (outfile,">>$outfile");
>                    print outfile ("$match\n");
>                  }
>                   $line = <MYFILE>;   
>              }
> 
> close (MYFILE);
> close (outfile);
> 
> ####### Please remove the outfile after use. As this
> would eatup disk
> space. ###########
> 
> Test file ##########################
> Hi I am Subramanya
> I live in juigj
> iorth
> ojr
> ;[k
> hl
> Subramanya
> iqerioj
> 1234Subramanya
> Subramanya Avadhani
> iijriogj
> ioj
> [pjtr
> hk
> Avadhani Subramanya
> iojioqer
> \opjth
> Subramanya
> I am Subramanya
> I am here Subramanya
>  ############################                 
> Here I want the entire line and not just the string
> entered by user,
> till EOL(say Subramanya).
> 
> Thanks,
> Subbu
> 
> _______________________________________________
> Perl-Unix-Users mailing list
> [EMAIL PROTECTED]
> To unsubscribe:
> http://listserv.ActiveState.com/mailman/mysubs
> 


=====
Anthony Ettinger
Phone: (408) 656-2473
[EMAIL PROTECTED]
http://www.apwebdesign.com

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
_______________________________________________
Perl-Unix-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to