## C.2. Listing of masterindex Shell Script

>     #! /bin/sh
>     # 1.1 -- 7/9/90
>     MASTER=""
>     FILES=""
>     PAGE=""
>     FORMAT=1
>     INDEXDIR=/work/sedawk/awk/index
>     #INDEXDIR=/work/index
>     INDEXMACDIR=/work/macros/current
>     # Add check that all dependent modules are available.
>     sectNumber=1
>     useNumber=1
>     while [ "$#" != "0" ]; do
>        case $1 in
>        -m*)     MASTER="TRUE";;
>        [1-9])   sectNumber=$1;;
>        *,*)     sectNames=$1; useNumber=0;;
>        -p*)     PAGE="TRUE";;
>        -s*)     FORMAT=0;;
>        -*)      echo $1 " is not a valid argument";;
>        *)       if [ -f $1 ]; then
>                   FILES="$FILES $1"
>                 else
>                   echo "$1: file not found"
>                 fi;;
>        esac
>        shift
>     done
>     if [ "$FILES" = "" ]; then
>        echo "Please supply a valid filename."
>        exit
>     fi
>     if [ "$MASTER" != "" ]; then
>        for x in $FILES
>        do
>        if [ "$useNumber" != 0 ]; then
>           romaNum=`$INDEXDIR/romanum $sectNumber`
>           awk '-F\t' '
>              NF == 1 { print $0 }
>              NF > 1  { print $0 ":" volume }
>           ' volume=$romaNum $x >>/tmp/index$$
>           sectNumber=`expr $sectNumber + 1`
>        else
>           awk '-F\t' '
>              NR == 1 { split(namelist, names, ",");
>                        volname = names[volume] }
>              NF == 1 { print $0 }
>              NF > 1  { print $0 ":" volname }
>           ' volume=$sectNumber namelist=$sectNames $x >>/tmp/index$$
>           sectNumber=`expr $sectNumber + 1`
>        fi
>        done
>        FILES="/tmp/index$$"
>     fi
>     if [ "$PAGE" != "" ]; then
>        $INDEXDIR/page.idx $FILES
>        exit
>     fi
>     $INDEXDIR/input.idx $FILES |
>     sort -bdf -t:  +0 -1 +1 -2 +3 -4 +2n -3n | uniq |
>     $INDEXDIR/pagenums.idx |
>     $INDEXDIR/combine.idx |
>     $INDEXDIR/format.idx FMT=$FORMAT MACDIR=$INDEXMACDIR
>     if [ -s "/tmp/index$$" ]; then
>        rm /tmp/index$$
>     fi

Copyright © 2003 O'Reilly & Associates. All rights reserved.