#! @PERL@ # # Perl script to sort DNS names # # ************************************************************************* # * 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 . * # ************************************************************************* use strict; #use locale; -- not very useful for DNS use Getopt::Std; $Getopt::Std::STANDARD_HELP_VERSION = 1; $main::VERSION = '@VERSION@'; 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() { chomp; push @names, join('.', reverse split /\./); } close FD; } # Sort entries @names = sort { lc($a) cmp lc($b) } @names; if ($opt_r) { @names = reverse @names; } # Print results foreach (@names) { print join('.', reverse split /\./)."\n"; }