#!/usr/local/plan9/bin/rc | |
. 9.rc | |
# Usage: lookman key ... | |
# prints out the names of all manual pages containing all the given keywords | |
index=$PLAN9/man/lookman.index | |
t1=/tmp/look1.$pid | |
t2=/tmp/look2.$pid | |
fn sigexit sigint sighup sigterm{ | |
rm -f $t1 $t2 | |
exit 1 | |
} | |
*=`{echo $*|tr A-Z a-z|tr -dc 'a-z0-9_ \012'} # fold case, delete funny chars | |
if(~ $#* 0){ | |
echo usage: lookman key ... >[1=2] | |
exit 1 | |
} | |
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;/.*/man/man[0-9]*/;; | |
s;(.*)\.(.*);man \2 \1 # \1(\2);' | |
rm -f $t1 $t2 | |
exit 0 |