grep

grep linux command cheatsheet by Thamizhiniyan C S

Introduction

The grep filter searches a file for a particular pattern of characters, and displays all lines that contain that pattern. The pattern that is searched in the file is referred to as the regular expression.


Important Flags

FlagsDescription

-R

Does a recursive grep search for the files inside the folders(if found in the specified path for pattern search; else grep won't traverse directory for searching the pattern you specify)

-h

If you're grepping recursively in a directory, this flag disables the prefixing of filenames in the results.

-c

This flag won't list you the pattern only list an integer value, that how many times the pattern was found in the file/folder.

-i

Specifies grep to search for the PATTERN while IGNORING the case

-l

Will only list the filename instead of pattern found in it.

-n

It will list the lines with their line number in the file containing the pattern.

-v

This flag prints all the lines that are NOT containing the pattern

-E

This flag we already read above... will consider the PATTERN as a regular expression to find the matching strings.

-e

The official documentation says, it can be used to specify multiple patterns and if any string matches with the pattern(s) it will list it.


Examples

CommandDescription
grep "literal_string" filename

Search for the given string in a single file

grep "string" FILE_PATTERN

Checking for the given string in multiple files

grep -i "string" FILE

Case insensitive search

grep "REGEX" filename

Match regular expression in files

grep -iw "is" demo_file

Checking for full words, not for sub-strings using grep -w

grep -A  "string" FILENAME

Display N lines after match

grep -B  "string" FILENAME

Display N lines before match

grep -C  "string" FILENAME

Display N lines around match

grep -r "ramesh" *

Searching in all files recursively using grep -r

grep -v "go" demo_text

Invert match using grep -v

grep -v -e "pattern" -e "pattern"

Display the lines which does not matches all the given pattern

grep -c "pattern" filename

Counting the number of matches using grep -c

grep -l this demo_*

Display only the file names which matches the given pattern using grep -l

grep -o "is.*line" demo_file

Show only the matched string

grep -o -b "pattern" file

Show the position of match in the line

grep -n "go" demo_text

Show line number while displaying the output using grep -n

grep -iRl [directory path/keyword]

Find files with a specific keyword

Last updated