123456789101112131415161718192021222324252627282930313233343536 |
- #!/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 ''
|