如何使用grep仅匹配行尾的奇数出现

时间:2011-04-11 14:07:10

标签: regex grep

例如,我匹配奇数出现的'a'。 所以“helloaaa”应该匹配,而“helloaaaa”不匹配。

我还在bash上尝试了“(aa)* a $”有和没有-E选项。

1 个答案:

答案 0 :(得分:4)

您的问题是helloaaaa匹配,因为最后三个a

helloaaaa
      ===

为避免这种情况,您需要确保前一个字符不是a

grep -E '[^a](aa)*a$' filename

这里我假设该行不完全是a s。如果整行可以是a s,那么您可以使用此正则表达式:

grep -E '(^|[^a])(aa)*a$' filename