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>