查找 grep/egrep 重复的单词

Find repeated words with grep/egrep

我需要找到 grep/egrep 重复的单词。方案如下:

space word1<1 或更多 spaces>word1<2 或更多 spaces>word2<1 或更多 spaces>word2 space

例子

你好世界世界 yaaay yaaay abc

grep之后:“世界世界yaaay yaaay”

我尝试使用:egrep " (\w{1,}) {1,} "

我可以用 awk 来实现:

echo "hello world world yaaay yaaay abc" | awk 'BEGIN{tmp=""; result=""} {for(x=1;x<=NF;x++){if($x==tmp){result = result " "  $x " " $x};tmp=$x}} END{print result}'

输出:

 world world yaaay yaaay

再用字符串 "hello world world yaaay yaaay wow aaa aaa abc" 进行一次测试:

echo "hello world world yaaay yaaay wow aaa aaa abc" | awk 'BEGIN{tmp=""; result=""} {for(x=1;x<=NF;x++){if($x==tmp){result = result " "  $x " " $x};tmp=$x}} END{print result}'

输出:

world world yaaay yaaay aaa aaa