Cover V03, I03
Article
Figure 1
Figure 2
Listing 1
Listing 10
Listing 11
Listing 12
Listing 13
Listing 14
Listing 2
Listing 3
Listing 4
Listing 5
Listing 6
Listing 7
Listing 8
Listing 9

may94.tar


Listing 5: prog2

:
#######################################################
# prog2 - list the top 10 files by user
#######################################################

# see also mklist
masterlist=/usr/stevei/c/stat/master.list

cat $masterlist |
awk '/^[lbcd]/ { next } # skip special files
{
#_begin template for stat args: -oidlugpsanw
mode=$1
inum=$2
device=$3

# the [constructed] idnum must be used when scanning
# multiple file systems in order to uniquely
# identify the file.
idnum=sprintf("%s %s", inum, device)

links=$4
uid=$5
gid=$6
fsize=$7

day=$8
month=$9
dayofmonth=$10
time=$11
year=$12
# access=sprintf("%s %s %s %s %s",
#    day, month, dayofmonth, time, year)

fname=$13
#_end template

# add minimum file size ?
# if ( size < xx ) next

# do not recount linked files

if ( unique[ idnum ] != 1 )
printf("%8s %10d %s\n", uid, fsize, fname)
unique[ idnum ] = 1
}' | sort -rn |
awk 'BEGIN {
max_count=10 # list only 10 files for each user
count=1
}
{
cur_id=$1
if ( cur_id == last_id )
count += 1
else
count=1

if ( count < max_count )
print

last_id=cur_id
}'
exit 0