#!/bin/bash
index() {
usedext=0
for (( i=0; i < ${#exts[@]}; i++ )); do
if [ "${exts[i]}" = "$1" ]; then
usedext=1
(( counts[i]++ ))
i=${#exts[@]}
fi
done
if [ $usedext = "0" ]; then
exts+=("$1")
counts+=("1")
fi
}
exts=()
counts=()
path=`pwd`
if [ ! $1 = "" ]; then
path=$1
fi
IFS_=$IFS
IFS=$'\n'
for file in `dir "$path" -a1`; do
# there are multiple possibilities: does the filename contain a dot?
if [ -d $file ]; then
if [[ $file == .* ]]; then
index ".dir"
else
index "dir"
fi
else
if [[ $file =~ \. ]]; then
if [[ $file == .* ]]; then
index ".file"
else
index "${file##*.}"
fi
else
index "file"
fi
fi
done
IFS=$IFS_
for (( i=0; i < ${#exts[@]}; i++ )); do
echo ${exts[i]}$'\t'${counts[i]}
done