Grep
#
#Getting started
#
Usage
#
Search standard output (i.e. a stream of text)
$ grep [options] search_string
Search for an exact string in file:
$ grep [options] search_string path/to/file
Print lines in myfile.txt containing the string “mellon”
$ grep 'mellon' myfile.txt
Wildcards are accepted in filename.
Option examples
#
-i | grep -i ^DA demo.txt | Forgets about case sensitivity |
---|
-w | grep -w “of” demo.txt | Search only for the full word |
-A | grep -A 3 ‘Exception’ error.log | Display 3 lines after matching string |
-B | grep -B 4 ‘Exception’ error.log | Display 4 lines before matching string |
-C | grep -C 5 ‘Exception’ error.log | Display 5 lines around matching string |
-r | grep -r ‘quickref.me’ /var/log/nginx/ | Recursive search (within subdirs) |
-v | grep -v ‘warning’ /var/log/syslog | Return all lines which don’t match the pattern |
-e | grep -e ‘^al’ filename | Use regex (lines starting with ‘al’) |
-E | grep -E ‘ja(s|cks)on’ filename | Extended regex (lines containing jason or jackson) |
-c | grep -c ’error’ /var/log/syslog | Count the number of matches |
-l | grep -l ‘robot’ /var/log/* | Print the name of the file(s) of matches |
-o | grep -o search_string filename | Only show the matching part of the string |
-n | grep -n “go” demo.txt | Show the line numbers of the matches |
#Basic regular expressions
#
Refer
#
Please refer to the full version of the regex cheat sheet for more complex requirements.
Wildcards
#
. | Any character. |
---|
? | Optional and can only occur once. |
* | Optional and can occur more than once. |
+ | Required and can occur more than once. |
Quantifiers
#
{n} | Previous item appears exactly n times. |
---|
{n,} | Previous item appears n times or more. |
{,m} | Previous item appears n times maximum. |
{n,m} | Previous item appears between n and m times. |
POSIX
#
[:alpha:] | Any lower and upper case letter. |
---|
[:digit:] | Any number. |
[:alnum:] | Any lower and upper case letter or digit. |
[:space:] | Any whitespace. |
Character
#
[A-Za-z] | Any lower and upper case letter. |
---|
[0-9] | Any number. |
[0-9A-Za-z] | Any lower and upper case letter or digit. |
Position
#
^ | Beginning of line. |
---|
$ | End of line. |
^$ | Empty line. |
\< | Start of word. |
\> | End of word. |