IP アドレスリストのソート

$ ruby -ne 'BEGIN{ $ary = [] }; $ary << $_.chomp; END { puts $ary.sort{|a,b| a.split(".").map{|e| "%03d" % e.to_i}.join <=> b.split(".").map{|e| "%03d" % e.to_i}.join} }' < ip.txt | uniq > ip-sort-uniq.txt

うーん。

$ ruby -ne 'BEGIN{ $h = {} }; $h[$_.chomp.split(".").map{|e| "%3d" % e.to_i}.join] = $_.chomp; END{ $h.keys.sort.each{|k| puts $h[k]} }' < ip.txt > ip-sort-uniq2.txt

うーん。

$ ruby -ne 'BEGIN{ $ary = [] }; $ary << $_.chomp; END { puts $ary.sort_by{|e| e.split(".").map{|e| "%03d" % e.to_i}.join} }' < ip.txt | uniq > ip-sort-uniq3.txt

うーん。