很难使用正则表达式来查找文件中至少出现两次的字符

很难使用正则表达式来查找文件中至少出现两次的字符

我有一个包含随机代码的文件。每个代码都有十个字符,我试图在文件中查找至少出现两次字符的代码。我正在这样做:

grep DD* [filename]

这会查找出现 2 次字符“D”的代码,但也会显示仅出现 1 次“D”的代码。如何更改正则表达式以仅显示出现 2 次的代码?

答案1

*正则表达式中的 是量词,表示前一个实体重复 0 次或多次。

只需删除量词:

grep DD filename

请注意,上面的内容也会匹配出现 3 次或多次“D”的行。

如果您想要任何字符,而不仅仅是“D”,则两次或更多次:

grep -E '(.)\1' filename

如果您想要“D”正好 2 次:

grep -E '([^D]|^)DD([^D]|$)' filename

相关内容