From owner-freebsd-hackers@freebsd.org Thu Nov 30 11:15:53 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C86EBDFFDBC for ; Thu, 30 Nov 2017 11:15:53 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "vps1.elischer.org", Issuer "CA Cert Signing Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id A53C380940 for ; Thu, 30 Nov 2017 11:15:53 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from Julian-MBP3.local (115-166-31-52.dyn.iinet.net.au [115.166.31.52]) (authenticated bits=0) by vps1.elischer.org (8.15.2/8.15.2) with ESMTPSA id vAUBFT51073344 (version=TLSv1.2 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 30 Nov 2017 03:15:33 -0800 (PST) (envelope-from julian@freebsd.org) Subject: Re: sort(1) sorting IP (v4) addresses (INET_ATON?) To: "Rodney W. Grimes" , bsd-lists@BSDforge.com Cc: FreeBSD Hackers References: <201711291909.vATJ9eir019941@pdx.rh.CN85.dnsmgr.net> From: Julian Elischer Message-ID: Date: Thu, 30 Nov 2017 19:15:23 +0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <201711291909.vATJ9eir019941@pdx.rh.CN85.dnsmgr.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Nov 2017 11:15:53 -0000 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 > 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...