sort(1) sorting IP (v4) addresses (INET_ATON?)

Andrew Duane aduane at juniper.net
Wed Nov 29 20:31:36 UTC 2017


> From: owner-freebsd-hackers at freebsd.org [mailto:owner-freebsd-
> hackers at freebsd.org] On Behalf Of Rodney W. Grimes
> Sent: Wednesday, November 29, 2017 2:10 PM
> To: bsd-lists at BSDforge.com
> Cc: FreeBSD Hackers <freebsd-hackers at freebsd.org>
> Subject: Re: sort(1) sorting IP (v4) addresses (INET_ATON?)
> 
> > I'm constantly dealing with IPv4 addresses (millions). Sorting the
> > mass is never perfect, and I'm forced to *visually* fix those out of order.
> > Yet I continue to (later) find some I've missed -- I'm sick of it!
> > Thus far, I've found I attain the best results with sort(1):
> >
> > sort -t . -k 4,4n -k 3,3n -k 2,2n  ./TCPLIST | sort -g>./SORTED
> >
> > Which ends up pretty damn close. But not perfect. :( Then it occurred
> > to me that adding INET_ATON to sort, allowing for an additional -inet
> > option to sort(1) for IP addresses -- hell if MySQL can provide it[1],
> > why the heck can't sort(1)?
> > Else I guess I'll have to try and give a shot at cobbling up a C
> > utility to manage it. But seems like too much work for something
> > that'll only accomplish one thing. :(
> >
> > Thanks for any thoughts, or further insight.
>
> The old school on this is you do a substitue of the . for a <sp> and then just
> use sort -n on that then munge it back to have the .'s,
> 
> Though I would not be opposed to sort learning about inet numbers, it
> should not be -inet as you would want to be able to apply this to fields as in 4i
> to sort the 4th field as an inet number.
> Actually I guess you need both to be orthagnal with -n and others.
> --
> Rod Grimes                                                 rgrimes at freebsd.org

Let's not forget that pesky other format: IPv6. Do we need a capital 'I' for that?
BTW, would using i/I as the format specifier conflict with '-i' for "ignore-case"?

....................................
Andrew L. Duane - Principal Resident Engineer
Juniper Networks, Inc.
aduane at juniper.net





More information about the freebsd-hackers mailing list