Problems? Is your data what you think it is? | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
Edited again to add more clarity. Hopefully. ;) I ran the command # cat * |grep -P '\d+\.\d+\.\d+\.\d+' on a directory containing a bunch of iptables configuration files, in order to pull out all of the lines which had something that looked like an IP address on them. Given that most of the lines were of the form ADMIN__SANDRO_DESK="123.456.78.90" # ilcylic Desktop my first thought was to then |awk {print $1;} to eliminate the trailing comments, but then shortly realised that eliminated a bunch of stuff I actually wanted. In then attempting to see what I would be eliminating, I tried to create a regex for grep -P that would show me lines which had, roughly, ^[one or more non-whitespace chars, which also do not form an IP address][one or more whitespace chars][zero or more chars][an IP address] The first part proved to be the most difficult. How would one say "a string of one or more non-whitespace chars, which are also not an IP address" since, of course, an IP address is a string of one or more non-whitespace chars? Thanks in advance, Monks. :) Edited to add some examples (examples also edited): So, if I were to cat a file and run it past grep -P 'My_Regex', it would not match lines of the form ADMIN__SANDRO_DESK="123.156.78.90" # ilcylic Desktop but would match lines like # ADMIN__SANDRO_DESK="123.156.78.91" # ilcylic Desktop (old) or # 06/06/15 SR Chgd SANDRO 121.123.154.99 or ADMIN__SANDRO_DESK = "123.156.78.90"
|
|