# # Unix Programs: about, searches man pages
APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

I've removed advertising from most of this site and will eventually clean up the few pages where it remains.

While not terribly expensive to maintain, this does cost me something. If I don't get enough donations to cover that expense, I will be shutting the site down in early 2020.

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



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:

Take Control of Numbers

Take Control of Parallels Desktop 12

Take Control of Pages

Take Control of the Mac Command Line with Terminal, Second Edition

Take Control of Apple Mail, Third Edition





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





As I said in my comments to the committee, [Fortran 90' would be a] nice language, too bad it's not Fortran. (Dan Davison)




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