davidsen@steinmetz.steinmetz.UUCP (William E. Davidsen Jr) (09/08/87)
Although I'm not a big fan of MSDOS I often have to move data between
Xenix and DOS. I find myself fighting with the directory utility, and
therefore wrote this utility shell. It creates a listing of all files,
sorted, doesn't get ugly when files are >99k, and does a total.
I assume that everyone used "dosls x:|sort|pr -4t" when needed, this is
just to handle the case when a complete list is needed.
---------------- cut here and set executable ----------------
:
#
# DOS directory utility for Xenix
#
# Bill Davidsen - 8/4/87
#
# reads, sorts, format and analizes a DOS volume
# get the volume name
if [ -n "$1" ]
then
volname=$1
else
echo "Device? \c"
read ans
volname=$ans
fi
# read, sort, analize
dosdir $volname | sort |
awk '
BEGIN {
# set name format in display
# 0 - "NAME EXT"
# 1 - "NAME.EXT "
format=0
}
{
# set the values
name = $1
if (substr($0,10,1) == " ") {
ext = ""
size = $2+0
dtime = $3 " " $4
}
else {
ext = $2
size = $3+0
dtime = $4 " " $5
}
s+=size
if (format == 1)
{
fname=name "." ext
printf("%-12s %7d %s\n", fname, size, dtime)
}
else
{
printf("%-8s %-3s %7d %s\n", name, ext, size, dtime)
}
}
END {
printf("\n%20d bytes in %d files\n", s, NR)
}'
---------------- end ----------------
--
bill davidsen (wedu@ge-crd.arpa)
{uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me