Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jan 2008 11:09:14 -0600
From:      Paul Schmehl <pauls@utdallas.edu>
To:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Shell scripting kungfu
Message-ID:  <043D043618599C4017DE8774@utd59514.utdallas.edu>

next in thread | raw e-mail | index | archive | help
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@utdallas.edu)
Senior Information Security Analyst
The University of Texas at Dallas
http://www.utdallas.edu/ir/security/




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?043D043618599C4017DE8774>