我需要在unix(bash)中使用egrep(或grep -e)在文件中查找重复的单词
I tried:
egrep "(\<[a-zA-Z]+\>) \1" file.txt
and
egrep "(\b[a-zA-Z]+\b) \1" file.txt
但出于某种原因,这些人认为事情是重复的,但事实并非如此!
例如,尽管存在单词边界条件,它仍认为字符串“wordwords”满足标准\>
or \b
.
\1
匹配第一个捕获匹配的任何字符串。这与匹配与第一次捕获匹配的相同模式不同。因此,第一个捕获在单词边界上匹配的事实不再相关,即使\b
位于捕获括号内。
如果您希望第二个实例也位于字边界上,则需要这样说:
egrep "(\b[a-zA-Z]+) \1\b" file.txt
这与:
egrep "\b([a-zA-Z]+) \1\b" file.txt
模式中的空格强制单词边界,所以我删除了多余的\b
s。如果你想更明确,你可以将它们放入:
egrep "\<([a-zA-Z]+)\> \<\1\>" file.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)