例如,我匹配奇数出现的'a'。 所以“helloaaa”应该匹配,而“helloaaaa”不匹配。
我还在bash上尝试了“(aa)* a $”有和没有-E选项。
答案 0 :(得分:4)
您的问题是helloaaaa
匹配,因为最后三个a
:
helloaaaa
===
为避免这种情况,您需要确保前一个字符不是a
:
grep -E '[^a](aa)*a$' filename
这里我假设该行不完全是a
s。如果整行可以是a
s,那么您可以使用此正则表达式:
grep -E '(^|[^a])(aa)*a$' filename