APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed


Some material is very old and may be incorrect today

© December 1997 Tony Lawrence

about: searches body of man pages for subject


#!/bin/sh
# about: searches man pages text for reference
echo "about <subject> {section} finds <subject> in man pages or {section}"
echo "(assumes SCO Unix 3.2 2)"
echo " "
echo "(C)opyright 1991 Lawrence & Clark, Inc"
echo "(617) 762-0707"

if [ "$1" = "" ]
then
        exit
fi

eval flist=/usr/man/cat.${2:-"*"}
echo "(delete to exit)"
nomatch=15                      # so that something shows while searching...
for h in $flist
do
echo "Searching $h"
for i in $h/*
do
        file=`basename $i`
        section=`echo $i | sed "s/.*cat.\([A-Z]*\).*/\1 .../"`
        if [ `expr $file : '.*\.Z'` != 0 ] # expecting packed files     
                then
                looker=zcat
                else
                looker=cat 
        fi
        # find a match, if any
        line=`$looker $i | col -b | grep -ny "$1"`
        # This is just so you know it didn't die...
        nomatch=`expr $nomatch + 1`
        if [ $nomatch -gt 15 ]
                then
                nomatch=1
                echo -n "Examining "
                echo $section
                fi
        # If we have a match, display it in context
        if [ "$line" != "" ]
                then
                nomatch=1
                line=`expr "$line" : "\([0-9]*\):.*"`
                first=`expr $line - 3`
                last=`expr $line + 3`
                if [ $first -lt "1" ]
                        then   
                        first=1
                        fi
                # First couple of lines ...
                eval $looker $i | head -4
                # Now show it in context
                echo "----- \"$1 \"  found in context:"
                eval $looker $i | sed -n "$first,${last}p"
                echo "-----"
                echo "Read Man Entry? s to advance section,p to print"
                read choice
                case $choice in
                        [yY]) eval $looker $i | col -b | pg ;;
                        [pP]) eval $looker $i | col -b | lpr ;;
                        [sS]) break ;;
                        *) : ;;
                esac
                # reset counter so we don't look dead..
                nomatch=15
        fi
done
done
 

| Rates| Certification| Services



If you found something useful today, please consider a small donation.



Got something to add? Send me email.





(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

->
-> Unix Programs: about, searches man pages


Inexpensive and informative Apple related e-books:

iOS 8: A Take Control Crash Course

Sierra: A Take Control Crash Course

Digital Sharing Crash Course

Take Control of Preview

Take Control of High Sierra





More Articles by © Tony Lawrence





Printer Friendly Version

Have you tried Searching this site?

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us


Printer Friendly Version





The activity of "debugging", or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed. (Datamation)




Linux posts

Troubleshooting posts


This post tagged:

Code

Searching



Unix/Linux Consultants

Skills Tests

Unix/Linux Book Reviews

My Unix/Linux Troubleshooting Book

This site runs on Linode