0

例如,我想匹配文本文件中的字符串“abcabc”,其中两个(并且只有两个)“abc”连接在一起,并且“abcabc”的前面和末尾没有字符?

如果我使用 grep -n '(abc){2}' TEST,它不起作用

4

5 回答 5

1

逃离父母:

grep -n '\(abc\)\{2\}' TEST

如果您想abcabc在一行上单独匹配字符串,正如您的描述所暗示的那样,请使用:

grep -n '^\(abc\)\{2\}$' TEST
于 2012-06-04T07:24:13.693 回答
1

这是最短的选择:

^abcabc$
于 2012-06-04T07:24:26.910 回答
1

尝试:

egrep '\b(abc){2}\b' input
于 2012-06-04T07:24:34.847 回答
0

谢谢大家,从你们的回答中,我想我已经得到了我需要的东西。

正如我在我的问题中所说,我想匹配“ abcabc”,其中 2 并且仅重复“ abc”,前后没有其他字符,但“ abcabc”不是该行中唯一的字符串。

所以答案是:

grep -n "\b\\(abc\\)\\{2\\}\b" filename
于 2012-06-05T03:23:19.423 回答
0

检查这是否合适。

$ grep '\<abcabc\>'
test
abcabc
abcabc
test abcabc
test abcabc
testabcabc
于 2012-06-04T08:04:51.907 回答