如何匹配2个相同的字符串与egrep分隔1个或多个空格

时间:2016-11-11 12:04:26

标签: regex grep

我需要匹配由一个或多个空格分隔的2个相同的字符串。例如:

foo foo< -match foo fooo< - 不匹配

到目前为止,我有:

egrep '[ ]\w+[ ]{1,}' sample.txt

只匹配随机字符串和任意数量的空格。

1 个答案:

答案 0 :(得分:2)

您可以将此grep与已捕获的群组和后向参考一起使用:

grep -owE '(\w+)[[:blank:]]+\1' file

foo    foo

RegEx说明:

(              # start capture group #1
   \w+         # match 1 or more word characters
)              # end capture group #1
[[:blank:]]+   # match 1 or more spaces or tabs
\1             # back-reference to captured group #1 

通过使用-w选项和反向引用\1,我们确保匹配完全相同的单词,这些单词由1个或多个空格分隔。