/usr/bin/dnssort is in ndisc6 1.0.1-1ubuntu1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #! /usr/bin/perl
#
# Perl script to sort DNS names
#
# $Id: dnssort.in 483 2007-08-08 15:09:36Z remi $
# *************************************************************************
# * Copyright © 2004-2006 Rémi Denis-Courmont. *
# * This program is free software: you can redistribute and/or modify *
# * it under the terms of the GNU General Public License as published by *
# * the Free Software Foundation, versions 2 or 3 of the license. *
# * *
# * This program is distributed in the hope that it will be useful, *
# * but WITHOUT ANY WARRANTY; without even the implied warranty of *
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
# * GNU General Public License for more details. *
# * *
# * You should have received a copy of the GNU General Public License *
# * along with this program. If not, see <http://www.gnu.org/licenses/>. *
# *************************************************************************
use strict;
#use locale; -- not very useful for DNS
use Getopt::Std;
$Getopt::Std::STANDARD_HELP_VERSION = 1;
$main::VERSION = '1.0.1';
sub main::HELP_MESSAGE()
{
print "Usage: dnssort [-r] [FILES]\n".
" Sorts DNS hostnames from input.\n";
}
# Parse command line
our $opt_r;
getopts('r');
if ($#ARGV < 0)
{
# No files specified -> Use standard input
push @ARGV, '-';
}
# Read files
my @names = ();
foreach (@ARGV)
{
open FD,"< $_" or die "$_: $!\n";
while(<FD>)
{
chomp;
split /\./;
push @names, join('.', reverse @_);
}
close FD;
}
# Sort entries
@names = sort { lc($a) cmp lc($b) } @names;
if ($opt_r)
{
@names = reverse @names;
}
# Print results
foreach (@names)
{
split /\./;
print join('.', reverse @_)."\n";
}
|