Sponsored Content
Top Forums Shell Programming and Scripting Perl search in a string for.... Post 302288209 by Philux on Monday 16th of February 2009 05:38:12 PM
Old 02-16-2009
The search works and returns the correct value. how ever when i try and remove the # marks and delete it no such file or directory... i know it is looking now for the name it just found and remove it .. but i need it to return the name of the file to remove. That yahoo... was found in. Thanks for the help

Edit.. Looks like the in File is not giving the correct info . it is returning the name that was found.

Quote:
Originally Posted by KevinADC
Untested code, use at your own risk.

Code:
#!/usr/bin/perl

# This will recursively look for files with extension .702 or .000, starting
# at the path specified ./phil /var/files/i/hate
# if yahoo.tw if found in any of these files, the file will be removed
# try it a few times, then uncomment the rm line to make it really go to work

use strict;
use warnings;
use File::Find;

my $file_extensions = '702|000';
my $search_string = "yahoo.com.tw";
my $dir = $ARGV[0] or do {
   print "Usage: I need to know where you want me to start files. ie: ./phil/var/studpid_files/\n";
   exit(0);
};

find (\&wanted, $dir);

sub wanted {
   if (/\.$file_extensions\z/) {
      open (my $IN , "<", $_) or do {
         print "Can't open file $_ : $!\n";
         return(0);
      };
      my $bad = 0;
      while (my $line = <$IN>) {
         if ($line =~ /([\w.-]+\@yahoo\.com\.tw)/i) {
            print "Found $1 in file $_\n";
            $bad = 1;
            last;
         }
      }
      close($IN); 
      if ($bad) {
         sleep(1);#give it a second to close the file
         # uncomment next 4 lines when you are sure it looks like it is working
#           unlink($_) or do {
#              print "Can't delete file $_ : $!\n";
#              return(0);
#           };
      }
   }
}

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: Search for string then parse next line

Hi All, I have a file that I need to be able to find a pattern match on one line then parse data on the next or subsequent lines - I will know which line needs to be parsed beforehand. This is what I currently have: while (<COMMAND_OUT>) { if ($_ =~ m/TEST/) { ... (4 Replies)
Discussion started by: pondlife
4 Replies

2. 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

3. Shell Programming and Scripting

Perl: Search for string on line then compare numbers!

Hi All, I have a file that I need to be able to find a pattern match on a line, take the number on that line check if its >0.9 or <0.1 and if this is true write the line to output.out file. An example of 4 lines in my file is: 1. driver.I177.I11.net010 1.48622200477273e-05 2.... (2 Replies)
Discussion started by: Crypto
2 Replies

4. Shell Programming and Scripting

search for a string -perl

Hi, I have a line where i need to get certain part of it.. example.. text txt tt: 1909 thats how exactly it looks and all spaces are to be counted.. i need to retrieve 1909.. Thanks (11 Replies)
Discussion started by: meghana
11 Replies

5. Shell Programming and Scripting

How to search a date format from a file an replace with a string in PERL

I am very new to Perl. I am struggling so hard to search a date (such as 10/09/2009, 10-09-2009) from a text file and replace with a string (say DATE) using Perl. Please help me out. Thanks in advance. Regds Doren (4 Replies)
Discussion started by: my_Perl
4 Replies

6. Shell Programming and Scripting

search of string from an array in Perl

Hi All I want to search a string from an array in Perl. If a match occurs, assign that string to a variable else assign 'No match'. I tried writing the script as follows but it's in vain. Please help me.. #!/usr/bin/perl use strict; my $NER; my @text=("ORG","PER"); ... (4 Replies)
Discussion started by: my_Perl
4 Replies

7. Shell Programming and Scripting

perl search string for cut data

perl -lne '$/="1H1XXXXX";print $_ if /0001|0002|0003/' data.txt> output.txt more data.txt 1H1XXXXX|0001|Y| aaa bbb ccc 1H1XXXXX|0005|N| bbb g 1H1XXXXX|0001|Y| hhh ddd 222 1H1XXXXX|0002|Y| 444 1H1XXXXX|0002|N| 222 1H1XXXXX|0003|Y| hhhh (3 Replies)
Discussion started by: kittiwas
3 Replies

8. Shell Programming and Scripting

perl- read search and replace string from the file

Dear all, I have a number of files and each file has two sections separated by a blank line. At the top section, I have lines which describes the values of the alphabetical characters, # s #; 0.123 # p #; 12.3 # d #; -2.33 # f #; 5.68 <blank line> sssssss spfdffff sdfffffff Now I... (4 Replies)
Discussion started by: sasharma
4 Replies

9. UNIX for Dummies Questions & Answers

Search different string using perl

Hello, I want to search two strings in a file and print the same in the new file using perl script. Can anyone suggest me how to do this... The file looks like below: <UML:ModelElement.requirement> <UML:Dependency name="Row_MainColumn_FW_0009"> <UML:ModelElement.taggedValue>... (3 Replies)
Discussion started by: suvendu4urs
3 Replies

10. UNIX for Dummies Questions & Answers

Loop with Perl (string search)

I am using a perl script to reverse and complement sequences if a string is found. The script works as expected as standalone but I would like to use it in my bash file. However, I am not getting my expected result. My test.txt file >Sample_72... (8 Replies)
Discussion started by: Xterra
8 Replies
UPDATE-METAINIT(1)					User Contributed Perl Documentation					UPDATE-METAINIT(1)

NAME
update-metainit - Generates init scripts SYNOPSIS
update-metainit [--remove initname [--purge] ] DESCRIPTION
Metainit solves the problem of writing good init scripts. Instead of manually creating these important files, they are derived from a declaritive description in the metainit files in /etc/metainit. These files can be shipped with packages or created by the local adminis- trator. If update-metainit called without argument, it will regenerate init scripts for all the files in /etc/metainit. The generated files contain a large warning in form of a comment that they will be overridden. Modifications are preferably done in the files in /etc/metainit and made effective by running update-metainit. If needed, the administrator can prevent modified init files by removing the warning comment. OPTIONS
--remove initname This command will remove any generated and non-modified scripts that were created by the metainit file with the name initname. --purge Only usable with --remove. Will remove the generated files even if modified. SEE ALSO
dh_metainit(1) AUTHOR
Joachim Breitner <nomeata@debian.org> perl v5.8.8 2007-07-30 UPDATE-METAINIT(1)
All times are GMT -4. The time now is 01:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy