While many people use the grep command through a pipe | there are more efficient ways of using it. I have nearly killed a server on many occasions by running cat filename |grep some-term while the command tries to list a huge file. Instead simply use egrep which is more efficient in terms of speed and system resources.
egrep pattern file
egrep what-I-want /var/log/messages
Usage: egrep [OPTION]… PATTERN [FILE] …
Search for PATTERN in each FILE or standard input.
Example: egrep -i ‘hello world’ menu.h main.c
-E, –extended-regexp PATTERN is an extended regular expression
-F, –fixed-strings PATTERN is a set of newline-separated strings
-G, –basic-regexp PATTERN is a basic regular expression
-P, –perl-regexp PATTERN is a Perl regular expression
-e, –regexp=PATTERN use PATTERN as a regular expression
-f, –file=FILE obtain PATTERN from FILE
-i, –ignore-case ignore case distinctions
-w, –word-regexp force PATTERN to match only whole words
-x, –line-regexp force PATTERN to match only whole lines
-z, –null-data a data line ends in 0 byte, not newline
-s, –no-messages suppress error messages
-v, –invert-match select non-matching lines
-V, –version print version information and exit
–help display this help and exit
–mmap use memory-mapped input if possible
-m, –max-count=NUM stop after NUM matches
-b, –byte-offset print the byte offset with output lines
-n, –line-number print line number with output lines
–line-buffered flush output on every line
-H, –with-filename print the filename for each match
-h, –no-filename suppress the prefixing filename on output
–label=LABEL print LABEL as filename for standard input
-o, –only-matching show only the part of a line matching PATTERN
-q, –quiet, –silent suppress all normal output
–binary-files=TYPE assume that binary files are TYPE
TYPE is ‘binary’, ‘text’, or ‘without-match’
-a, –text equivalent to –binary-files=text
-I equivalent to –binary-files=without-match
-d, –directories=ACTION how to handle directories
ACTION is ‘read’, ‘recurse’, or ‘skip’
-D, –devices=ACTION how to handle devices, FIFOs and sockets
ACTION is ‘read’ or ‘skip’
-R, -r, –recursive equivalent to –directories=recurse
–include=PATTERN files that match PATTERN will be examined
–exclude=PATTERN files that match PATTERN will be skipped.
–exclude-from=FILE files that match PATTERN in FILE will be skipped.
-L, –files-without-match only print FILE names containing no match
-l, –files-with-matches only print FILE names containing matches
-c, –count only print a count of matching lines per FILE
-Z, –null print 0 byte after FILE name
-B, –before-context=NUM print NUM lines of leading context
-A, –after-context=NUM print NUM lines of trailing context
-C, –context=NUM print NUM lines of output context
-NUM same as –context=NUM
–color[=WHEN],
–colour[=WHEN] use markers to distinguish the matching string
WHEN may be `always’, `never’ or `auto’.
-U, –binary do not strip CR characters at EOL (MSDOS)
-u, –unix-byte-offsets report offsets as if CRs were not there (MSDOS)
With no FILE, or when FILE is -, read standard input. If less than
two FILEs given, assume -h. Exit status is 0 if match, 1 if no match,
and 2 if trouble.