Pattern Matching Tips

Grep Regular Expression


Denotes the beginning of a line


Denotes the end of a line


Matches any one characters


Matches 0 or more of the previous characters


Matches any number or type of characters


Matches on character for the one listed in the the Square brackets


Does not match any characters listed

<, >/

Denotes the beginning and end (respectively) of a word

So an example of a regular expression search would be

% grep "<[A-Za-z].*" file
This will search for any word which begins with a letter upper or lower case. 

Sed Replace Expression

To remove the comments from an apt sources.list file use:

sudo sed -i -e "s/# deb/deb/g" /etc/apt/sources.list

Regular Expression Operators


matches 0 or 1 occurrence of *a*

'a' or empty string


matches 0 or more occurrences of *a*

empty string or 'a', 'aa', 'aaa', etc


matches 1 or more occurrences of *a*

'a', 'aa', 'aaa', etc


match *a* or *b*

'a' or 'b' -


match any single character

'a', 'q', 'l', '_', '+', etc


match any of the named characters

'w', 'o', 'e', 'i', 'r', 'j', 's', 'd'


match any of the characters in the range

'1', '2', '3', '4', '5', '6', '7', '8', '9'


match any characters not named

even digits, or any other character


group an expression (for use with other operators)



match an *a* at the beginning of a line



match an *a* at the end of a line








begin expression

any character other than '?'

more than one of those

a question mark

end expression

So the use of the in front of the ? makes it refer to an actual question mark.

No comments: