示例输入:
123123123 aaaaa abababab aaab baaa abcde1abcde1
aaaaaa 1212121212
预期产出:
123123123
abababab
abcde1abcde1
aaaaaa
这是我尝试过的:
egrep '(.)\1\1{2,4}' test
答案 0 :(得分:1)
假设您的grep
版本支持-o
和-w
选项
据我所知,-o, - 仅匹配 仅打印匹配行的匹配(非空)部分,每个此类部分位于单独的输出上 线。
-w, - word-regexp 仅选择包含构成整个单词的匹配项的行。测试是匹配的 substring必须位于行的开头,或者前面是非单词构成字符。 同样,它必须位于行的末尾或后跟非单词构成字符。 单词构成字符是字母,数字和下划线。
egrep
已弃用且grep -E
等效
向OP的尝试添加-o
选项,以及-w
以避免匹配单词的部分
$ grep -owE '(.)\1\1{2,4}' ip.txt
aaaaa
aaaaaa
更改正则表达式
$ grep -owE '(.{1,})\1{1,3}' ip.txt
123123123
abababab
abcde1abcde1
aaaaaa
.{1,}
要重复的一个或多个字符\1{1,3}
最多4次,所以我们需要再次匹配至少一次,最多再次3次