(draft)

SIGNIF


        signif - research tool

SYNOPSIS

        signif [-l] [-c] [-w] [-a] [-k] [-p] [-f]

        signif [ ] [ ] pattern filename[s]

AVAILABILITY
(see Appendix)


DESCRIPTION


        signif (to help researchers navigate through their data)
is a research tool based on grep, sed and awk. It makes it possible
to use the computer as an intellectual aid to help a researcher
determine what is significant in a collection of data. This command allows for 
input in the form of a linguistic pattern and produces a list of file
names, line numbers and lines from the files containing the linguistic
pattern and/or the multiple line context of the pattern. The tool makes it
possible to output the context of the keyword or expression (printing 5 lines
before and after the line containing the pattern). And the entire
file that the pattern was found in can also be printed.

This tool makes it possible therefore to use the computer to highlight a
particular linguistic pattern and to then have the computer help to determine
the lines or context of data that is significant.

OPTIONS


  -l    outputs single line context of the linguistic pattern search,
including filename, line number of pattern, line containing pattern 

        example:

        signif -l tool unixtool.0*

  -c    outputs 10 line context of pattern from files 

        example: 

        signif -c tool unixtool.0*

  -w    outputs entire files that contain the pattern

        example:

        signif -w tool unixtool.0*

        signif - outputs a list of one line references to
pattern, followed by a 10 line context of the pattern from the
files containing the pattern.  

        signif pattern filename[s]

        example:

        signif tool unixtool.0*

This is the default


  -f    allows input of multiple patterns from a file for a
pattern search for each of the linguistic patterns.

        example:

        signif -f keywordfile unixtool.0*

  -k    allows input of multiple linguistic patterns from keyboard for
a multiple context search and output.

	example:

	signif -k  keyword1 keyword2 keyword3

USAGE
 signif script

        signif scripts consist of editing commands that search a series
of files and produce a list of the pattern or expression in the following
form:

     [word or expression] [filename or filenames]



SEE ALSO

        "Researcher's Toolkit" by Ronda Hauben

        grep(), sed(), awk()

BUGS

        Duplication of context lines if consecutive references have line
numbers less than 10 lines apart.

	Need to name file name that files will be applied to or put
the files in a separate direction and search using wildcard *.





APPENDIX

Following are the shell scripts for each of the options

Replace filename w/ * or Name of files to be searched.


signif 

#This is the default

# signif
#!/bin/sh
#set -x

# make sure that there are atleast two args to the command
case $# in
	0) 	echo usage:;
		echo "	" `basename $0` keyphrase files
		exit ;;
	1) 	echo usage:;
		echo "	" `basename $0` keyphrase files
	  	exit ;;
esac

if egrep -n $* /dev/null
then
	context.sh $*
else
	echo Sorry
fi

#following is a sample of the form that can be executed


#bugs - If an expression is entered (2 words) it searches the first     

#the two words of the expression have to be contained within quotes
#as part of the program for this script to take an expression as input.
  
# context.sh


# context.sh

#!/bin/sh
#outputs whole files which include the keyword
awkfile=/tmp/nu.awk.$$
case $# in
	0) 	echo usage:;
		echo "	" `basename $0` keyphrase files
		exit ;;
	1) 	echo usage:;
		echo "	" `basename $0` keyphrase files
	  	exit ;;
esac


cat >${awkfile} < 5 {print "sed -n ' " \$2-5 "," \$2+5"p'",\$1}
	\$2 < 6 && \$2 > 1  {print "sed -n '" 2 "," \$2+5 "p'" , \$1}
	{print "echo =============================="}

END_AWK_SCRIPT

#echo executing: 
#echo "	egrep -n ${key} $* | awk -f ${awkfile} | sh"

egrep -n $* /dev/null | awk -f ${awkfile} | sh

/bin/rm -f ${awkfile}

signif -l



# signif -l
#!/bin/sh
#set -x

# make sure that there are atleast two args to the command
case $# in
	0) 	echo usage:;
		echo "	" `basename $0` keyphrase files
		exit ;;
	1) 	echo usage:;
		echo "	" `basename $0` keyphrase files
	  	exit ;;
esac

if egrep -n $* /dev/null
then
	echo ok
else
	echo Sorry
fi

example: $ signif -l tool unixtool.0*


signif -c


#signif -c
#!/bin/sh
#outputs 10 line context which include the keyword from files

# make sure that there are at least two args to the command

case $# in
	0) 	echo usage:;
		echo "	" `basename $0` keyphrase files
		exit ;;
	1) 	echo usage:;
		echo "	" `basename $0` keyphrase files
	  	exit ;;
esac


if egrep -n $* /dev/null
then

	context.sh $*

else 
	echo Sorry

fi


# signif -w

#!/bin/sh
#outputs whole files which include the keyword
awkfile=/tmp/nu.awk2.$$
case $# in
	0) 	echo usage:;
		echo "	" `basename $0` keyphrase files
		exit ;;
	1) 	echo usage:;
		echo "	" `basename $0` keyphrase files
	  	exit ;;
esac


cat >${awkfile} < 5 {print "sed -n ' " $2-5 "," $2+5"p'",$1}
$2 < 6 && $2 > 1  {print "sed -n '" 2 "," $2+5 "p'" , $1}
{print "echo =============================="}



Last Updated: 

Tue Apr 26 16:00:14 EDT 1994