Alevel Unix 09april20 AKM
Alevel Unix 09april20 AKM
Grep command in Unix/Linux is the short form of ‘global search for the regular expression’.
The grep command is a filter that is used to search for lines matching a specified pattern and print the
matching lines to standard output.
Syntax:
The pattern is specified as a regular expression. A regular expression is a string of characters that is used
to specify a pattern matching rule. Special characters are used to define the matching rules and
positions.
#1) Anchor Characters: ‘^’ and ‘$’ at the beginning and end of the pattern are used to anchor the pattern
to the start of the line, and to the end of the line respectively.
Example: “^Name” matches all lines that start with the string “Name”. The strings “\<” and “\>” are
used to anchor the pattern to the start and end of a word respectively.
#3) Escaped Characters: Any of the special characters can be matched as a regular character by escaping
them with a ‘\’.
Example: “\$\*” will match the lines that contain the string “$*”
#4) Character Range: A set of characters enclosed in a ‘[‘ and ‘]’ pair specify a range of characters to be
matched.
Example: “[aeiou]” will match all lines that contain a vowel. A hyphen can be used while specifying a
range to shorten a set of consecutive characters. E.g. “[0-9]” will match all lines that contain a digit. A
carat can be used at the beginning of the range to specify a negative range. E.g. “[^xyz]” will match all
lines that do not contain x, y or z.
#5) Repetition Modifier: A ‘*’ after a character or group of characters is used to allow matching zero or
more instances of the preceding pattern.
The grep command supports a number of options for additional controls on the matching:
-n: displays the lines containing the pattern along with the line numbers.
Examples:
Match all lines that start with ‘hello’. E.g: “hello there”
Match all lines that end with ‘done’. E.g: “well done”
Match all lines that contain any of the letters ‘a’, ‘b’, ‘c’, ‘d’ or ‘e’.
Match all lines that start with a digit following zero or more spaces. E.g: “ 1.” or “2.”
Match all lines that contain the word hello in upper-case or lower-case
$ grep -i “hello”