#!/bin/sh # # 'lsa3' - count files by extension # # Rev 00 04/29/96 Initial edition # Rev 01 11/24/03 Better handling of filenames with embedded spaces. # ######################################################## OK=0 if [ $# -eq 0 ] ; then OK=1 elif [ $# -eq 1 ] ; then if [ -d $1 ] ; then OK=1 cd $1 fi fi if [ $OK != 1 ] ; then echo "Count files in a given directory by extension." echo echo " lsa3 [directory]" echo exit 1 fi ls -a | awk '\ $0 != "." && $0 != ".." {\ n=length($0); m=0; for (i=1;i<=n;i++) { if (substr($0,i,1) == ".") m=i }; if (m==0) printf "! %s\n", $0; else if (m == 1) printf "%s !\n" ,$0; else printf("%s %s\n",substr($0,m,n-m+1),substr($0,1,m-1)); } ' | sort | awk '\ BEGIN { n=0; m=0; ext=""; }; { if ($1 == ext) n++ else { m+=n; if (ext == "!") ext="(none)"; if (n > 0) printf("%5d %s\n",n,ext); ext=$1; n=1; } }; END { if (n > 0) { m+=n; if (ext == "!") ext="(none)"; printf("%5d %s\n",n,ext); }; printf("----- -----------\n"); printf("%5d total files\n",m); } '