set p [open {| find . -iname *.jpg -o -iname *.jpeg -o -iname *.gif -o -iname *.png -o -iname *.bmp } r ] while {[gets $p f]>=0} { while true { set d [file dirname $f] set t [file tail $f] if [catch {incr a($d)}] { set a($d) 1 } if { $d=="." || $d=="/" } break set f $d } } foreach d [lsort -decr [array names a]] { regsub -all {[^!-~]} $d _ e puts "$a($d)\t$e" }