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

Re: what regular expression do I need?

by davido (Archbishop)
on Apr 18, 2013 at 15:54 UTC ( #1029383=note: print w/ replies, xml ) Need Help??


in reply to what regular expression do I need?

A simple regex works fine, but transliteration is often more efficient. Here's an approach with tr///. This snippet iterates over each line of each file supplied at the command prompt, and prints the filename and line number, along with a highlighted version of the line's data showing where the problems are:

while( <> ) { chomp; if( tr/IMO//c ) { s/([^IMO]+)/[-->$1<--]/g; print "File: $ARGV, Line $.: $_\n"; } }

This would be invoked as:

$ ./nonimo.pl filename1.txt filename2.txt

It could be expressed as a one-liner, in fact, like this:

perl -lnE 'if(tr/IMO//c){s/([^IMO]+)/[-->$1<--]/g; say "$ARGV-$.: $_"} +' file1.txt file2.txt fileXX.txt

The output is a little more terse, but it does the same thing. In either case, if your objective is just to print the bad lines, you can easily simplify the print statement.


Dave


Comment on Re: what regular expression do I need?
Select or Download Code
Re^2: what regular expression do I need?
by tbone654 (Beadle) on Apr 19, 2013 at 04:33 UTC
    How about...
    cat file1 | perl -e 'while(<>){ next if !/IMO/; print $_;}'
    If the lines can only begin with IMO then:
    cat file1 | perl -e 'while(<>){ next if !/\bIMO/; print $_;}'
    If case is not important then:
    cat file1 | perl -e 'while(<>){ next if !/\bIMO/i; print $_;}'
    If you have multiple words to search for, then create another file named file2 and enter the search words:
    vi file2 apple orange banana grep -f file2 file1
    From the unix command-line... file2 is the list of words to search for from lines in file1... Note: you may have to run "dos2unix file2" to remove LF/CR or use chomp somehow...

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2014-12-27 19:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls