Grep Cheat Sheet
Summary
Cheat sheet with the most common and useful Grep commands. Grep is a GNU/Linux command-line utility for searching plain-text data sets for lines that match a regular expression.
Syntax #
The general grep command syntax:
grep [OPTIONS] PATTERN [FILE...]
Searching #
Basic search in file #
grep 'pattern' file
Case-insensitive search #
grep -i 'pattern' file
Whole word search #
grep -w 'word' file
Recursive search (for directories) #
grep -r 'pattern' directory
Search for multiple external matterns in a file #
grep -f patterns.txt file
Recursive search with line numbers and file names #
grep -rnH 'pattern' directory
Viewing #
Display Line Numbers #
grep -n 'pattern' file
Display Only Matching Part of Lines #
grep -o 'pattern' file
Display Filename with Matches #
grep -H 'pattern' file
Display only filenames with matches #
grep -l 'pattern' file
Display lines matching whole words only #
grep -wo 'word' file
Display lines before/after match #
grep -B 3 'pattern' file # Display 3 lines before the match
grep -A 2 'pattern' file # Display 2 lines after the match
grep -C 1 'pattern' file # Display 1 line before and after the match
Display lines that match multiple patterns #
grep 'pattern1\|pattern2' file
grep -E 'pattern1|pattern2' file # Using Extended Regular Expressions
Display context around matches #
grep -C 2 'pattern' file # Display 2 lines of context around matches
Display lines matching multiple patterns (logical AND) #
grep 'pattern1' file | grep 'pattern2'
Display lines matching either of multiple patterns (logical OR) #
grep -E 'pattern1|pattern2' file
Display lines that do not match multiple patterns #
grep -v -e 'pattern1' -e 'pattern2' file
Invert match (exclude lines) #
grep -v 'pattern' file
Counting #
Count the number of matches #
grep -c 'pattern' file
Counting the occurrence of each matched line #
grep -c 'pattern' file | sort -n
These commands and options should cover a variety of scenarios when using grep to search for patterns in files. Customize them based on your specific needs and preferences.
Further readings #
Sources and recommended, further resources on the topic:
License
License: Grep Cheat Sheet by Jonas Jared Jacek is licensed under CC BY-SA 4.0.
This license requires that reusers give credit to the creator. It allows reusers to distribute, remix, adapt, and build upon the material in any medium or format, for noncommercial purposes only. To give credit, provide a link back to the original source, the author, and the license e.g. like this:
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://www.ditig.com/publications/grep-cheat-sheet">Grep Cheat Sheet</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://www.j15k.com/">Jonas Jared Jacek</a> is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="license noopener noreferrer">CC BY-SA 4.0</a>.</p>
For more information see the DITig legal page.