$ perl -MFile::Find -MFile::Basename -e 'find sub{$h{(fileparse($_,qw{\.[^\.]+$}))[2]}++ if -f},@ARGV;END{map{print "$_:$h{$_}\n"}keys %h}' . .sh:27 .pl:3 .conf:9 .rman:1 .sql:9 参考 fileparse - ファイルパスからファイル名などを取り出す 関連 再帰的にファイル名に接頭辞をつける Perl ワンライナー - ablog 追記: @yoheia 複数プロセス可なら find . | sed -ne 's/^.*\/[^/][^/]*\(\.[^/][^/]*\)$/\1/p' | sort | uniq -c でどうでしょう? posted at 12:13:09 正規表現すごいっすね。目が痛い><