Date: Thu, 30 Nov 2017 19:15:23 +0800 From: Julian Elischer <julian@freebsd.org> To: "Rodney W. Grimes" <freebsd-rwg@pdx.rh.CN85.dnsmgr.net>, bsd-lists@BSDforge.com Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: sort(1) sorting IP (v4) addresses (INET_ATON?) Message-ID: <cb943aeb-f600-3b70-71f4-bd2579e03c35@freebsd.org> In-Reply-To: <201711291909.vATJ9eir019941@pdx.rh.CN85.dnsmgr.net> References: <201711291909.vATJ9eir019941@pdx.rh.CN85.dnsmgr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 30/11/17 3:09 am, Rodney W. Grimes wrote: >> 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. >> >> [1] https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_inet-aton > 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. > > and now to try make it work for compacted IPv6 numbers...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cb943aeb-f600-3b70-71f4-bd2579e03c35>