13e12c5d1SDavid du Colombier#!/bin/rc 23e12c5d1SDavid du Colombier# Usage: lookman key ... 33e12c5d1SDavid du Colombier# prints out the names of all manual pages containing all the given keywords 4*9f2726c3SDavid du Colombierrfork e 53e12c5d1SDavid du Colombierindex=/sys/lib/man/lookman/index 63e12c5d1SDavid du Colombiert1=/tmp/look1.$pid 73e12c5d1SDavid du Colombiert2=/tmp/look2.$pid 8*9f2726c3SDavid du Colombierfn sigexit { 93e12c5d1SDavid du Colombier rm -f $t1 $t2 10*9f2726c3SDavid du Colombier exit 113e12c5d1SDavid du Colombier} 12*9f2726c3SDavid du Colombierfn sigint sighup sigterm { 13*9f2726c3SDavid du Colombier rm -f $t1 $t2 14*9f2726c3SDavid du Colombier exit note 15*9f2726c3SDavid du Colombier} 16*9f2726c3SDavid du Colombier 17f3793cddSDavid du Colombier*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_. \012'} # fold case, delete funny chars 183e12c5d1SDavid du Colombierif(~ $#* 0){ 193e12c5d1SDavid du Colombier echo Usage: lookman key ... >/fd/2 20*9f2726c3SDavid du Colombier exit usage 213e12c5d1SDavid du Colombier} 223e12c5d1SDavid du Colombierlook $1 $index | sed 's/.* //' | sort -u >$t1 233e12c5d1SDavid du Colombiershift 243e12c5d1SDavid du Colombierfor(i in $*){ 253e12c5d1SDavid du Colombier look $i $index | sed 's/.* //' | sort -u | 263e12c5d1SDavid du Colombier awk 'BEGIN { 27*9f2726c3SDavid du Colombier while (getline < "'$t1'" > 0) 28*9f2726c3SDavid du Colombier table[$0] = 1 293e12c5d1SDavid du Colombier } 303e12c5d1SDavid du Colombier { if (table[$0]) print } 313e12c5d1SDavid du Colombier ' > $t2 323e12c5d1SDavid du Colombier mv $t2 $t1 333e12c5d1SDavid du Colombier} 349a747e4fSDavid du Colombiersort $t1 | sed 's;/sys/man/;; 359a747e4fSDavid du Colombier s;(.*)/(.*);man \1 \2 # \2(\1);' 36*9f2726c3SDavid du Colombierexit '' 37