Shell scripting kungfu
Vince Hoffman
jhary at unsane.co.uk
Fri Jan 18 09:28:33 PST 2008
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
>
>
More information about the freebsd-questions
mailing list