# @(#)updatedb.csh 4.4 (Berkeley) 83/07/21
set SRCHPATHS
= "/" # directories to be put in the database
set LIBDIR
= /usr
/lib
/find # for subprograms
set FINDHONCHO
= root
# for error messages
set FCODES
= /usr
/lib
/find
/find.codes
# the database
set path
= ( $LIBDIR /usr
/ucb
/bin
/usr
/bin
)
set bigrams
= /tmp
/f.bigrams$$
set filelist
= /tmp
/f.list$$
# Make a file list and compute common bigrams.
# Alphabetize '/' before any other char with 'tr'.
# If the system is very short of sort space, 'bigram' can be made
# smarter to accumulate common bigrams directly without sorting
# ('awk', with its associative memory capacity, can do this in several
# lines, but is too slow, and runs out of string space on small machines).
find ${SRCHPATHS} -print |
tr '/' '\001' | \
(sort -f; echo $status > $errs) | \
tr '\001' '/' |
tee $filelist |
$LIBDIR/bigram | \
(sort; echo $status >> $errs) |
uniq -c |
sort -nr | \
awk '{ if (NR <= 128) print $2 }' |
tr -d '\012' > $bigrams
if { grep -s -v 0 $errs } then
echo 'squeeze error: out of sort space' |
mail $FINDHONCHO
$LIBDIR/code
$bigrams < $filelist > $FCODES
rm $bigrams $filelist $errs