A Simple Introduction to Grep

Grep
Grep is a search utility that will look at each line of a file and check for matches against a given search pattern.
Grep command syntax

This command performs a case-insensitive search (-i) for the term “error” in the file “logfile.txt”. The output will include any line where the search term is found.
Output example:
Error 500, 10:05:12 Z, Internal server error
Error 404, 08:14:35 Z, Page could not be found
Success 200, 02:55:23 Z, No errors reported
Common Grep options
-i: Perform a case-insensitive grep search
-n: Display the line numbers
-v: Display only lines that DON’T match the pattern
--color: Append to the end of your grep command to color highlight the matched string in the output
--include: Append to the end of your Grep command to search only files that match a certain criteria (ex. “–include *.css” to only search .css files)
Basic Grep examples
Search within multiple files using Grep
grep "error" logfile.txt syslog.txt
Show line numbers of matches
Use the -n option to have Grep show the line numbers where matches were found.
grep -n "error" logfile.txt
Search every file within a directory using Grep
Specify the -r (recursive) flag and a directory to Grep to search every file found within that directory.
grep -r "error" logs
Search every file within the current directory using Grep
Specify . instead of a directory name to indicate that Grep should search within the current directory.
grep -r "error" .
Search only files with a certain extension with Grep
To search only files with a certain file extension, utilize Grep’s --include flag. The following example will only Grep within .css files:
grep -r "flexbox" site --include \*.css
Write Grep results to a file
By default Grep will only print to standard output. To instead instruct Grep to print results to a file, use >:
grep -r 'Error' logs > error_logs.txt
Use Regular Expressions inside a Grep command
The Grep search pattern can include a variety of RegEx matchers. In this example, we are searching for lines that start with either “Error 401” or “Error 403”:
grep "^Error 40[4,3]" logfile.txt
Want more info about RegEx with Grep? Try this article.
