正则表达式字符重复 n 次或多次符合 grep

Regex character repeats n or more times in line with grep

我需要使用 grep 找到正则表达式来找到重复 4 次或更多次的字符。

我知道表达式是 {n,},所以如果我需要查找行,例如,当字符 "g" 重复 4 次或更多次时,理论上 grep 手册页是:

grep "g{4,}" textsamplefile

但是不起作用。有帮助吗?

该字符可以有其他字母。例如,有效匹配为:

g示例gofg有效g匹配g

gotherg有效g匹配gg这里g

gggg其他

您应该更改您的 grep 命令:

grep -E 'g{4,}' input_file # --> this will extract only the lines containing chains of 4 or more g

如果您想获取包含 4 个或更多相同字符链的所有行,您的正则表达式将变为:

grep -E '(.){3,}' input_file

如果您不需要链条,而只需要 g 出现 4 次或更多次的行:

grep -E '([^g]*g){4}' input_file

您可以 泛化 任何重复 4 次或更多次的字符:

grep -E '(.)(.*){3}' input_file