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

发布于 2024-11-17 04:51:17 字数 1459 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扶醉桌前 2024-11-24 04:51:17

您可以将 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

You can use POSIX-compatible regular expressions with egrep or 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
冷默言语 2024-11-24 04:51:17

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

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

这将返回匹配的行号(-n)和匹配本身(-o),但不是整行(您会无需 -o 即可获取)。

但这仅适用于 GNU 版本的 grep

I have an addition to joschi's answer:
If you don't know mybigsentence but you want to search for arbitrary repeated strings of a minimum length (I assume a length of 10 characters in my example) you could do it with GNU egrep like this:

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

This will return the line number (-n) of the match and the match itself (-o) but not the whole line (which you would get without -o).

But that will only work with the GNU version of grep.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文