我正在寻找一种使用egrep的方法,以便在文件中查找“mybigsentencemybigsentence”。egrep搜索一个单词是否多次并排出现
我是比较新的egrep命令,所以我发现的唯一办法就是
egrep的“mybigsentencemybigsentence” MYFILE
,但我怎么可以搜索,我们会做一个字符用“+”操作符设置(一次或多次)?
非常感谢。
我正在寻找一种使用egrep的方法,以便在文件中查找“mybigsentencemybigsentence”。egrep搜索一个单词是否多次并排出现
我是比较新的egrep命令,所以我发现的唯一办法就是
egrep的“mybigsentencemybigsentence” MYFILE
,但我怎么可以搜索,我们会做一个字符用“+”操作符设置(一次或多次)?
非常感谢。
您可以使用POSIX兼容的正则表达式与egrep
或grep -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
非常感谢! – gpol
我有一个除了joschi的回答是:
如果你不知道mybigsentence但你要搜索的任意最小长度的重复的字符串(我假设的10个字符的长度在我的例子),你可以使用GNU egrep
做这样的:
egrep -on '([a-z]{10,})\1' myfile
这将返回匹配的行号(-n
)和匹配本身(-o
),但不是整行(如果没有-o
,您将得到该行)。
但这只适用于GNU版本grep
。
我想说这应该去Unix,但没有一个关闭选项来移动它。 – derobert