Grep
From Free net encyclopedia
Template:Lowercase grep is a command line utility originally written for use with the Unix operating system. The default behaviour of grep takes a regular expression on the command line, reads standard input or a list of files, and outputs the lines containing matches for the regular expression.
The name comes from a command in the Unix text editor ed that takes the form:
- g/re/p
which means "search globally for lines matching the regular expression, and print them". There are various command line switches available when using grep that modify the default behaviour.
Contents |
Variations
There are many derivatives of grep, for example agrep which stands for approximate grep to facilitate fuzzy string searching, fgrep for fixed pattern searches, and egrep for searches involving more sophisticated regular expression syntax. Tcgrep is a rewrite of grep and uses Perl regular expression syntax. All these variations of grep have been ported to many computer operating systems.
Many other commands contain the word "grep." pgrep, for instance, displays the processes whose names match a regular expression.
In Perl, grep is a built-in function, which when provided both a regular expression (or a general code block) and a list, it returns the elements of that list matched by the expression.
Usage as a conversational verb
As the name "grep" neatly fits the phonology of English, it is often used as a verb, meaning to search – usually, to search a known set of files, as one would with the grep utility. The direct object is the set of files searched: "Kibo grepped his Usenet spool for his name." Compare with google. Sometimes visual grep is used as a term meaning to look through text searching for something, in the manner of the grep program.
The word "grep" has also become a synonym for regular expressions themselves. Many text and word processors now employ regular expression search features, which those applications will often refer to as a "grep tool" or "grep mode" in which one creates "grep patterns", causing confusion, especially in non-Unix environments.
Examples
To output all lines containing the string "foo" in the given list of files (here "*" represents all files in the current directory):
- grep foo *
To output all lines not containing the string "foo", use "-v":
- grep -v foo *
To output only the names of the matching files, use "-l":
- grep -l foo *
To output all matching lines in the given list or files or directories, or recursively into their subdirectories ("." represents the current directory), use "-r":
- grep -r foo .
grep also can read from standard input:
- grep foo * | grep bar
Further reading
Online documentation
- AIX grep reference
- GNU grep man page
- GNU grep texinfo documentation
Books
See also
External links
da:Grep de:grep es:grep fr:Grep nl:grep pl:Grep pt:Grep ru:Grep it:Grep