Grep 和正则表达式(连续字母)

Grep 和正则表达式(连续字母)

我正在尝试弄清楚如何在 grep 中列出连续字母。例如,如果我想在一行中列出所有包含两个连续 a 或 i 或 u 的单词,我该怎么做?

据我理解,该命令看起来像 egrep [a]{2} | egrep [i]{2} | egrep [u]{2}

但是,如果单词中有 aa 和 ii 或任何其他连续两个字母的组合,该怎么办?

答案1

您的问题中实际上有三个单独的命令:它将搜索具有 的任何内容aa,然后将这些结果传递给下一个egrep搜索具有 的任何内容的命令ii,然后将这些结果传递给最后一个egrep搜索 的命令。因此,您最终只得到包含所有三个组合、、uu的行aaii uu

你只需要使用 egrep命令,使用带交替的正则表达式:

egrep 'aa|ii|uu'

这将匹配所有包含aaii或 的行uu

答案2

你不能。Regex 仅适用于正则表达式。你会注意到正则表达式没有任何类型的内存(因此不能说 (.*)*2 或类似的东西)。你正在寻找一个有限原子或图灵机。

相关内容