ref: de1a460fa13ed2bffbdc3cb046cc8831c1d22008
dir: /rc/bin/lookman/
#!/bin/rc # Usage: lookman key ... # prints out the names of all manual pages containing all the given keywords rfork e index=/sys/lib/man/lookman/index t1=/tmp/look1.$pid t2=/tmp/look2.$pid fn sigexit { rm -f $t1 $t2 exit } fn sigint sighup sigterm { rm -f $t1 $t2 exit note } *=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_. \012'} # fold case, delete funny chars if(~ $#* 0){ echo usage: lookman key ... >/fd/2 exit usage } look $1 $index | sed 's/.* //' | sort -u >$t1 shift for(i in $*){ look $i $index | sed 's/.* //' | sort -u | awk 'BEGIN { while (getline < "'$t1'" > 0) table[$0] = 1 } { if (table[$0]) print } ' > $t2 mv $t2 $t1 } sort $t1 | sed 's;/sys/man/;; s;(.*)/(.*);man \1 \2 # \2(\1);' exit ''