30% OFF VPS For The First 12 Months Of Service!


Ends Mar 31, 2018

*T&C Apply

Egrep Examples

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.

Simple form:tux-small
egrep pattern file
egrep what-I-want /var/log/messages
Where what-I-want is the term you are looking for within the messages log file. There are also a lot of advanced searched you can do if you need to look in multiple files or ignore some things. Below is the readout of the manpage via egrep –help showing many of the options.
# egrep –help
Usage: egrep [OPTION]… PATTERN [FILE] …
Search for PATTERN in each FILE or standard input.
Example: egrep -i ‘hello world’ menu.h main.c
Regexp selection and interpretation:
-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
Output control:
-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
Context control:
-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
–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)
`egrep’ means `grep -E’. `fgrep’ means `grep -F’.
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.