using the grep ' word1|word2 ' filename is not the right command.
You should use the following command:
1,grep-e ' word1|word2 ' filename
2,egrep ' word1|word2 ' filename
3,grep ' word1/|word2 ' filename
Why do I need to add-e, about grep and Egrep:
Egrep equal to GREP-E. It interprets patterns in the pattern of extended regular expressions. The following help pages from grep:
Basic regular expression meta characters?, +, {, |, (and) have lost their original meaning, instead of using the backslash version/?,/+,/{,/|,/(and/). The traditional egrep does not support {metacharacters, some egrep implementations are/{substituted, so a portable script should avoid using {symbols in grep-e to match the literal {should use [}].
The GNU GREP-E attempts to support traditional usage, and it assumes that {is not a special character before the invalid interval specification string.
For example, the grep-e ' {1′ command searches for a string containing {12 characters without reporting a regular expression syntax error.
The POSIX.2 standard allows for an extension of this operation, but should be avoided in portable script files.
About the basic classification of regular Expressions:
1, the basic regular expression (fundamental Regular Expression also called basic RegEx abbreviation BREs)
2, extended Regular expression (Extended Regular Expression is also called Extended RegEx short Eres)
3, Perl Regular expression (Perl Regular Expression also known as Perl RegEx abbreviation PREs)
Some usages of basic regular expressions and extended regular expressions:
Basic Regular Expressions
Meta data |
Meaning and Paradigm |
^word |
Searches for a line that starts with Word. For example: Search for a script comment line that starts with a # Grep–n ' ^# ' regular.txt |
word$ |
Search for lines that end in Word For example, search with '. ' End of Line Grep–n '. $ ' regular.txt |
. |
matches any one character. For example: Grep–n ' E.E ' regular.txt Matches E and E have any one character, can match eee,eae,eve, but does not match EE. |
\ |
The escape character. For example: Search ', ' is a special character that has a special meaning in regular expressions. Must be escaped first. Grep–n ' \ ' Regular.txt |
* |
The preceding characters are repeated 0 to many times. such as matching gle,gogle,google,gooogle, etc. Grep–n ' Go*gle ' regular.txt |
[List] |
Matches one of a series of characters. For example: matching GL,GF. Grep–n ' g[lf] ' regular.txt |
[N1-N2] |
Matches one character in a range of characters. For example: matching numeric characters Grep–n ' [0-9] ' regular.txt |
[^list] |
Match characters other than character sets For example: Grep–n ' [^o] ' regular.txt Matching non-O characters |
\{n1,n2\} |
The preceding character repeats n1,n2 times For example: matching Google,gooogle. Grep–n ' Go\{2,3\}gle ' regular.txt |
\<word |
The word is the beginning. For example: Match a word that starts with G Grep–n ' \<g ' regular.txt |
Word\> |
Match the end of a word For example: Match a word ending with tion Grep–n ' tion\> ' regular.txt |
Extending Regular Expressions
grep generally supports basic regular expressions, and can extend regular expressions through parameter-e support, in addition GREP provides an extended command that is called Egrep to support extended regular expressions, which is equivalent to GREP-E. Although in general, the basic regular expression is sufficient. In special cases, complex extended expressions can simplify string matching.
The extended regular expression is based on the basic regular expression, adding some meta data.
Meta data |
Meaning and Paradigm |
+ |
Repeat the previous character 1 to several times. For example: matching God,good,goood and so on strings. Grep–ne Go+d ' Regular.txt |
? |
Match 0 or 1 times before the characters For example, matching Gd,god Grep–ne ' Go?d ' regular.txt |
| |
or (or) to match multiple strings For example: Grep–ne ' God|good ' regular.txt Match either God or good. |
() |
Matches the entire bracketed string, which turns out to match a single character For example: Search for good or glad Grep–ne ' g (oo|la) ' Regular.txt |
() |
The preceding characters are repeated 0 to many times. such as matching gle,gogle,google,gooogle, etc. Grep–ne ' Go*gle ' regular.txt |