Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Jan 2008 17:28:27 +0000
From:      Vince Hoffman <jhary@unsane.co.uk>
To:        Paul Schmehl <pauls@utdallas.edu>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: Shell scripting kungfu
Message-ID:  <4790E1BB.2020001@unsane.co.uk>
In-Reply-To: <043D043618599C4017DE8774@utd59514.utdallas.edu>
References:  <043D043618599C4017DE8774@utd59514.utdallas.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Paul Schmehl wrote:
> 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?
> 
Its a bit heavy to fireup but
perl -pe 's/\n/\/32,/' hostlist
should work (if you then remove the final tailing ,)



Vince
> 
> 




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