zsh + Perl で あるディレクトリ以下のファイルを再帰的に検索して文字コードを調べるワンライナーを書いてみた。
% perl -0777 -MEncode::Guess -wne '$e=guess_encoding($_,qw/euc-jp shiftjis 7bit-jis/);print "$ARGV:".$e->name."\n" if(ref($e))' **/*
実行結果はこんな感じ。
.. index.css:shiftjis index.html:UTF-32LE .. template/list.txt:shiftjis ..
「**/*」は zsh のファイルグロブ機能で、「*, */*, */*/*, ...」と再帰的に検索してくれる。
[参考]
Encode::Guess - Guesses encoding from data - metacpan.org
ウェブテコでzshについて発表したので資料を公開する - mollifier delta blog