Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: one liner with separate input file?

by aaron_baugher (Curate)
on Apr 15, 2015 at 21:35 UTC ( [id://1123570]=note: print w/replies, xml ) Need Help??


in reply to one liner with separate input file?

I wouldn't do this as a one-liner, but of course you can. But rather than loop through your IPs and check each of them against the other file (or vice versa), put the IPs in a hash, then go through the other file looking for IP patterns, check them against the hash, and comment them if they're found.

$ cat ips 111.222.333.444 55.66.77.88 $ cat text Line 1 nothing to comment Line 2 111.222.333.444 should be commented Line 3 11.22.33.44 do not comment Line 4 55.66.77.88 should be commented $ perl -pe '@l = `cat ips`;chomp @l; %h = map {$_=>1} @l; s/(\d{1,3}\. +\d{1,3}\.\d{1,3}\.\d{1,3})/$h{$1}?"#$1":$1/e;' <text

Aaron B.
Available for small or large Perl jobs and *nix system administration; see my home node.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2024-03-28 13:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found