ドメイン名一覧をドメイン毎にソート(文字列の反転)@bash

Webページのアクセス解析をドメイン毎に集計してみようと思って、IPを抜き出しホスト名を逆引き、そしてsortしようとしたが、sortコマンドは単純に文字列を並べるだけなので、ドメイン毎に集計できません。

例えば、aaa.com でひとまとめにしたくても、ホスト名が似た別ドメインがあると、このようにソートされてしまいます。

111.aaaa.com
222.bbbb.com
333.aaaa.com

ではどうやってやればよいかと、文字列を後ろからソートすればよいのですが、sort コマンドにはそのような機能はありません。

そこで出てくるのが、rev コマンドです。
このコマンドの動きは単純で、入力された文字列を反転、つまりこのように逆順に並び替えてくれます。

# echo  12345 | rev
 54321

よって、以下のように反転->ソート->反転 とすることで、ドメイン毎に集計ができるようになります。

# cat iplist.txt | rev | sort | rev
111.aaaa.com
333.aaaa.com
222.bbbb.com
タイトルとURLをコピーしました