Shell scripting kungfu
Paul Schmehl
pauls at utdallas.edu
Fri Jan 18 09:09:14 PST 2008
I need to do the following:
Take a list of various strings, one of which is a quoted IP address, and
extract the IPs. (Done that.)
Then take the list of IPs and convert them to a list of IPs with masks on a
single line.
IOW, I have converted the original list to this:
x.x.x.x
x.x.x.x
x.x.x.x
x.x.x.x
Now I need to remove the newlines and add /32, to the end of each IP so that I
have this:
x.x.x.x/32,x.x.x.x/32,x.x.x.x/32,etc.
I got close with sed, but I'm not quite there.
I got this:
x.x.x.x/32,x.x.x.x
x.x.x.x/32,x.x.x.x
x.x.x.x/32,x.x.x.x
Here's the code I used:
cat hostlist | cut -d',' -f2 | cut -d'"' -f2 | sort | uniq | grep -v "inet" |
sed '/[^*]$/N;s/\n */\/32,/'
What am I missing?
--
Paul Schmehl (pauls at utdallas.edu)
Senior Information Security Analyst
The University of Texas at Dallas
http://www.utdallas.edu/ir/security/
More information about the freebsd-questions
mailing list