: ########################################################################## # Title : mkwhatis.sco - extract NAME section from manual pages # Author : Heiner Steven # Date : 1994-03-15 # Requires : # Category : SCO UNIX # SCCS-Id. : @(#) mkwhatis.sco 1.2 03/12/19 ########################################################################## # Description: # SCO Unix version of mkwhatis ########################################################################## PN=`basename "$0"` # Program name VER='1.2' usage () { echo >&2 "$PN - create apropos/whatis database, $VER (stv '94) usage: $PN > /usr/man/whatis" exit 1 } : ${MANPATH:=/usr/man} [ $# -ne 0 ] && usage Pfade=`echo $MANPATH | sed 's/:/ /g'` # Beispiel fuer eine Verzeichnishierarchie (siehe auch man(C)): # /usr/man/man.C/* # /usr/man/cat.C/assign.C.Z # /usr/man/cat.C/auths.C.Z for Pfad in $Pfade do # Durchsuche angegebene Verzeichnishierarchie (cd $Pfad for Dir in cat.* do # Durchsuche angegebene Sektion Section=`echo $Dir | sed 's/cat\.//'` (cd $Dir for i in * do (case "$i" in *.Z) zcat $i;; *.z) pcat $i;; *) cat $i;; esac) | col -b | # Steuerzeichen entfernen awk ' BEGIN { Blanks = " "; } ($1 ~ /^[Nn][Aa][Mm][Ee]/) { # "Name"-Abschnitt getline if ( $0 == "" ) getline while ( $0 != "" ) { for ( i=1; i<=NF; i++ ) { if ( $i == "-" ) { Zeile = Zeile " ('$Section')" printf "%-24s - ", Zeile Zeile = "" } else { if ( Zeile == "" ) Zeile = $i else Zeile = Zeile " " $i } } printf "%s ", Zeile getline } print "" exit 0 }' done) done) done