This was my attempt:
grep -i 'th[D]{1,}'
I’m on hackerRank. I have this file that is delivered to my stdin.
I need as a result lines that contains :
the that then those
Advertisement
Answer
In a POSIX BRE pattern, when you use a “shorthand character class” like s, w, even in GNU grep, these escape sequences are treated as separate chars, a backslash and a letter. [D]{1,} matches one or more D letters or chars.
You need to match exactly the words you are told to:
grep -i -E '<(the|that|then|those)>'
Here,
-i– enables case insensitive matching-E– enables POSIX ERE syntax<– open word boundary(the|that|then|those)– s capturing group matching any of the word in between|(OR) alternation operators>– close word boundary.