egrep搜索一个单词并排出现多次

时间:2011-06-23 10:38:33

标签: grep

我一直在寻找一种方法来使用egrep来在文件中找到“mybigsentencemybigsentence”。

我对egrep比较新,所以我找到的唯一方法就是

egrep“mybigsentencemybigsentence”myfile

但是我如何使用“+”运算符(一次或多次)搜索字符集?

Thanx很多。

2 个答案:

答案 0 :(得分:2)

您可以将与POSIX兼容的正则表达式与egrepgrep -E

一起使用
# The test file
$ cat test
abcabc
abc

# Match exactly two occurrences of 'abc'
$ grep -E '(abc){2}' test
abcabc

# Match one ore more occurrences of 'abc'
$ grep -E '(abc)+' test
abcabc
abc

答案 1 :(得分:0)

我对joschi的答案有所补充:
如果您不知道 mybigsentence 但是您想要搜索最小长度的任意重复字符串(我假设在我的示例中长度为10个字符),您可以使用GNU egrep来完成像这样:

egrep -on '([a-z]{10,})\1' myfile

这将返回匹配的行号(-n)和匹配本身(-o),但不返回整行(没有-o的情况下)。

但这只适用于grep的GNU版本。