3 # counts the number of files in a set of directories.
4 # if no directories are provided, uses the current working directory.
6 # make sure they gave us some arguments, or go with our default of the current dir.
7 #hmmm: could use the count notation instead of sloppy empty check.
9 # reset the arguments list to scan any directories found in cwd.
11 IFS=$(echo -en "\n\b")
12 set -- $(find . -maxdepth 1 -mindepth 1 -type d) "${@:2}"
16 # run through all the parameters provided and find any directories under them
17 # (or probably barf if they're not dirs).
18 #hmmm: really? "barf" is an implementation strategy now?
19 for countfilesname in "${@}" ; do
20 # echo "arg is: '$countfilesname'"
21 # print the count of files followed by directory name,
22 # with leading zeros to allow sorting, which get
23 # redigested as spaces before showing the list.
24 printf "%06d -- %s\n" $(find "$countfilesname" -type f | wc -l) "$countfilesname"
26 # provide sorted output based on how many files exist
29 # eat the zeroes but keep the tabular look (i.e. replace each leading zero
30 # with a space). had to do it as cases, since this seems like context-
31 # sensitive matching, which sed will not do, i think).
32 sed -e 's/^000000/ 0/' -e 's/^00000/ /' -e 's/^0000/ /' \
33 -e 's/^000/ /' -e 's/^00/ /' -e 's/^0/ /'