grep
grep is a command-line utility for searching plain-text data sets for lines that match a regular expression.
Syntax
grep [options] pattern [file]
Options
-i: Ignore case distinctions in both the PATTERN and the input files.-v: Invert the sense of matching, to select non-matching lines.-c: Suppress normal output; instead print a count of matching lines for each input file.-n: Prefix each line of output with the 1-based line number within its input file.-l: Suppress normal output; instead print the name of each input file from which output would normally have been printed.-L: Suppress normal output; instead print the name of each input file from which no output would normally have been printed.-r: Read all files under each directory, recursively.-w: Select only those lines containing matches that form whole words.-x: Select only those matches that exactly match the whole line.-A: Print NUM lines of trailing context after matching lines.-B: Print NUM lines of leading context before matching lines.-C: Print NUM lines of output context.-E: Interpret PATTERN as an extended regular expression.-F: Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched.-G: Interpret PATTERN as a basic regular expression.-P: Interpret PATTERN as a Perl-compatible regular expression.-o: Show only the part of a line matching PATTERN.-q: Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected.-s: Suppress error messages about nonexistent or unreadable files.-h: Suppress the prefixing of filenames on output when multiple files are searched.-H: Print the file name for each match.-Z: Output a zero byte (the ASCII NUL character) instead of the character that normally follows a file name.-z: Output a zero byte (the ASCII NUL character) after the name of the input file.--binary-files: Without this option, grep takes binary files as text files and prints the matching lines.--color: Highlight the matching strings.--exclude: Skip files whose base name matches the specified pattern.--exclude-dir: Skip directories whose base name matches the specified pattern.--include: Search only files whose base name matches the specified pattern.--exclude-from: Skip files whose base name matches any of the file-name globs read from file.--exclude-dir-from: Skip directories whose base name matches any of the file-name globs read from file.--include-from: Search only files whose base name matches any of the file-name globs read from file.--line-buffered: Force output to be line buffered.--mmap: Use the mmap(2) system call to read input, instead of the default read(2) system call.--no-group-separator: Suppress the prefixing of filenames on output when multiple files are searched.--null: Output a zero byte (the ASCII NUL character) after the file name.--null-data: Treat input files as sequences of lines, each terminated by a zero byte (the ASCII NUL character) instead of a newline.--label: Display input actually coming from standard input as input coming from file LABEL.--no-filename: Suppress the prefixing of filenames on output when multiple files are searched.--with-filename: Print the file name for each match.--line-number: Prefix each line of output with the 1-based line number within its input file.--word-regexp: Select only those lines containing matches that form whole words.--files-with-matches: Suppress normal output; instead print the name of each input file from which output would normally have been printed.--files-without-match: Suppress normal output; instead print the name of each input file from which no output would normally have been printed.--count: Suppress normal output; instead print a count of matching lines for each input file.--max-count: Stop reading a file after NUM matching lines.--quiet: Suppress all normal output.--silent: Suppress all normal output.--binary: Treat the file(s) as binary.--text: Treat the file(s) as text.--help: Display a help message, and exit.--version: Display version information, and exit.
Examples
Grep for a string in a file
grep "string" file.txt
Grep for a string in multiple files
grep "string" file1.txt file2.txt
Grep for a string in all files in a directory
grep "string" *
Grep for a string in all files in a directory recursively
grep -r "string" *
Grep for a string in all files in a directory recursively with line numbers
grep -rn "string" *
Grep for a string in all files in a directory recursively with line numbers and file names
grep -rnl "string" *
Grep for a string in all files in a directory recursively with line numbers and file names and ignore case
grep -rnli "string" *
Grep for a string in all files in a directory recursively with line numbers and file names and ignore case and show only the part of a line matching PATTERN
grep -rnlio "string" *
Grep for a string in all files in a directory recursively with line numbers and file names and ignore case and show only the part of a line matching PATTERN and highlight the matching strings
grep -rnlio --color "string" *
Grep for a string in all files in a directory recursively with line numbers and file names and ignore case and show only the part of a line matching PATTERN and highlight the matching strings and show only the part of a line matching PATTERN
grep -rnlio --color -o "string" *
Zgrep
Zgrep is identical to grep, but it decompresses files before searching.
Syntax
zgrep [options] pattern [file]
Options
Same as grep.