agrep man page

agrep — print lines approximately matching a pattern


agrep [OPTION]... PATTERN [FILE]...


Searches for approximate matches of PATTERN in each FILE or standard input.   Example: `agrep -2 optimize foo.txt' outputs all lines in file `foo.txt' that match "optimize" within two errors.  E.g. lines which contain "optimise", "optmise", and "opitmize" all match.


Regexp selection and interpretation

-e PATTERN, --regexp=PATTERN

Use PATTERN as a regular expression; useful to protect patterns beginning with -.

-i, --ignore-case

Ignore case distinctions (as defined by the current locale) in PATTERN and input files.

-k, --literal

Treat PATTERN as a literal string, that is, a fixed string with no special characters.

-w, --word-regexp

Force PATTERN to match only whole words.  A "whole word" is a substring which either starts at the beginning or the record or is preceded by a non-word constituent character.   Similarly, the substring must either end at the end of the record or be followed by a non-word constituent character.  Word-constituent characters are alphanumerics (as defined by the current locale) and the underscore character.  Note that the non-word constituent characters must surround the match; they cannot be counted as errors.

Approximate matching settings

-D NUM, --delete-cost=NUM

Set cost of missing characters to NUM.

-I NUM, --insert-cost=NUM

Set cost of extra characters to NUM.

-S NUM, --substitute-cost=NUM

Set cost of incorrect characters to NUM. Note that a deletion (a missing character) and an insertion (an extra character) together constitute a substituted character, but the cost will be the that of a deletion and an insertion added together.  Thus, if the const of a substitution is set to be larger than the sum of the costs of deletion and insertion, direct substitutions will never be done.

-E NUM, --max-errors=NUM

Select records that have at most NUM errors.


Select records that have at most # errors (# is a digit between 0 and 9).


-d PATTERN, --delimiter=PATTERN

Set the record delimiter regular expression to PATTERN. The text between two delimiters, before the first delimiter, and after the last delimiter is considered to be a record.  The default record delimiter is the regexp "\n", so by default a record is a line. PATTERN can be any regular expression that does not match the empty string. For example, using -d "^From " defines mail messages as records in a Mailbox format file.

-v, --invert-match

Select non-matching records instead of matching records.

-V, --version

Print version information and exit.

-y, --nothing

Does nothing.  This options exists only for compatibility with the non-free agrep program.


Display a brief help message and exit.

Output control

-B, --best-match

Only output the best matching records, that is, the records with the lowest cost.  This is currently implemented by making two passes over the input files and cannot be used when reading from standard input.

--color, --colour

Highlight the matching strings in the output with a color marker.  The color string is taken from the GREP_COLOR environment variable.  The default color is red.

-c, --count

Only print a count of matching records per each input file, suppressing normal output.

-h, --no-filename

Suppress the prefixing filename on output when multiple files are searched.

-H, --with-filename

Prefix each output record with the name of the input file where the record was read from.

-l, --files-with-matches

Only print the name of each input file which contains at least one match, suppressing normal output.  The scanning for each file will stop on the first match.

-n, --record-number

Prefix each output record with its sequence number in the input file. The number of the first record is 1.

-q, --quiet, --silent

Do not write anything to standard output.  Exit immediately with zero exit status if a match is found.

-s, --show-cost

Print match cost with output.


Prefix each output record with the start and end offset of the first match within the record.  The offset of the first character of the record is 0.  The end position is given as the offset of the first character after the match.

-M, --delimiter-after

By default, the record delimiter is the newline character and is output after the matching record.  If -d is used, the record delimiter will be output before the matching record.  This option causes the delimiter to be output after the matching record.

With no FILE, or when FILE is -, reads standard input.  If less than two FILEs are given -h is assumed, otherwise -H is the default.


Exit status is 0 if a match is found, 1 for no match, and 2 if there were errors.  If -E or -# is not specified, only exact matches are selected.

PATTERN is a POSIX extended regular expression (ERE) with the TRE extensions.

Reporting Bugs

Report bugs to the TRE mailing list <>.


November 21, 2004 TRE agrep 0.8.0