grep
From Gentoo Wiki
grep is a tool for searching text files with regular expressions. Its name is a play on the ed command g/re/p which would globally search a document for a given regular expression and print the results.
Installation
USE flags
USE flags for sys-apps/grep GNU regular expression matcher
+egrep-fgrep
|
Install deprecated 'egrep' and 'fgrep' wrappers for 'grep -E' and 'grep -F' respectively. GNU grep 3.8 onwards warns about their usage by default, but the versions installed by this flag do not. No deprecation warnings are emitted when this flag is enabled. |
nls
|
Add Native Language Support (using gettext - GNU locale utilities) |
pcre
|
Add support for Perl Compatible Regular Expressions |
static
|
!!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically |
verify-sig
|
Verify upstream signatures on distfiles |
Emerge
Install sys-apps/grep:
root #
emerge --ask sys-apps/grep
Configuration
Environment variables
- GREP_COLOR (deprecated) colorizes matching text, by default this is set to 01;31 which is a bold red.
- GREP_COLORS sets the color of various parts of output, not just matches.
- LC_ALL, LC_COLLATE, LANG specify the locale for the collating sequence.
- LC_ALL, LC_CTYPE, LANG determines the encoding of characters and their attributes.
- LC_ALL, LC_MESSAGES, LANG determines the language grep uses for messages.
- POSIXLY_CORRECT treat all input after a file name as an additional file name among other things.
Usage
See also
For more information see devmanual.
For more information see devmanual.
Invocation
To see grep usage information:
user $
grep --help
Usage: grep [OPTION]... PATTERNS [FILE]... Search for PATTERNS in each FILE. Example: grep -i 'hello world' menu.h main.c PATTERNS can contain multiple patterns separated by newlines. Pattern selection and interpretation: -E, --extended-regexp PATTERNS are extended regular expressions -F, --fixed-strings PATTERNS are strings -G, --basic-regexp PATTERNS are basic regular expressions -P, --perl-regexp PATTERNS are Perl regular expressions -e, --regexp=PATTERNS use PATTERNS for matching -f, --file=FILE take PATTERNS from FILE -i, --ignore-case ignore case distinctions in patterns and data --no-ignore-case do not ignore case distinctions (default) -w, --word-regexp match only whole words -x, --line-regexp match only whole lines -z, --null-data a data line ends in 0 byte, not newline Miscellaneous: -s, --no-messages suppress error messages -v, --invert-match select non-matching lines -V, --version display version information and exit --help display this help text and exit Output control: -m, --max-count=NUM stop after NUM selected lines -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 file name with output lines -h, --no-filename suppress the file name prefix on output --label=LABEL use LABEL as the standard input file name prefix -o, --only-matching show only nonempty parts of lines that match -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, --recursive like --directories=recurse -R, --dereference-recursive likewise, but follow all symlinks --include=GLOB search only files that match GLOB (a file pattern) --exclude=GLOB skip files that match GLOB --exclude-from=FILE skip files that match any file pattern from FILE --exclude-dir=GLOB skip directories that match GLOB -L, --files-without-match print only names of FILEs with no selected lines -l, --files-with-matches print only names of FILEs with selected lines -c, --count print only a count of selected lines per FILE -T, --initial-tab make tabs line up (if needed) -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 --group-separator=SEP print SEP on line between matches with context --no-group-separator do not print separator for matches with context --color[=WHEN], --colour[=WHEN] use markers to highlight the matching strings; WHEN is 'always', 'never', or 'auto' -U, --binary do not strip CR characters at EOL (MSDOS/Windows) When FILE is '-', read standard input. With no FILE, read '.' if recursive, '-' otherwise. With fewer than two FILEs, assume -h. Exit status is 0 if any line is selected, 1 otherwise; if any error occurs and -q is not given, the exit status is 2. Report bugs to: bug-grep@gnu.org GNU grep home page: <https://www.gnu.org/software/grep/> General help using GNU software: <https://www.gnu.org/gethelp/>
Removal
Unmerge
Remove sys-apps/grep:
root #
emerge --ask --depclean --verbose sys-apps/grep
See also
- awk — a scripting language for data extraction
- ed — a line-based text editor with support for regular expressions
- Perl — a general purpose interpreted programming language with a powerful regular expression engine.
- Raku — a high-level, general-purpose, and gradually typed programming language with low boilerplate objects, optionally immutable data structures, and an advanced macro system.
- ripgrep — search tool that can recursively search directories for regex search patterns
- sed — a program that uses regular expressions to programmatically modify streams of text