计算至少有两个相同的连续字母BASH的单词数



我试图统计至少有两个连续字母相同的单词的数量,

我尝试了一些使用grep命令的东西,首先我使用tr命令让每个单词都显示在一个新行中,然后,我使用grep来匹配模式

tr ' ' '12' | grep -c '(.*).1'

但这让我数遍了所有的单词当我在grep中使用不带-c选项的同一命令时我只看到匹配单词中的字母用红色突出显示,如下所示:

https://i.stack.imgur.com/Vfjys.png我还尝试使用:CCD_ 2得24而不是5。

给定此输入文本lorem-ipsum.txt:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

与以上文本相同,突出显示双字母:

Lorem ipsum dolor坐在amet consectetur adipiscing elit sed do eiusmod tempor incidicount ut labore et dolore magna aliquaUt enim ad minim veniam quis nostrud exerciationstrong>e(4(cillum dolore eu fugiat(5(null一个例外sint

使用计算包含连续双字母的单词

tr -c '[:alpha:]' 'n' < lorem-ipsum.txt | grep -c '(.)1'
  • tr -c '[:alpha:]' 'n':将非字母字符转换为换行符,因此每个单词都放在流中自己的行上
  • grep -c '(.)1':统计任何捕获的字符(.)及其自身1的出现次数

测试断言:

[ 8 -eq "$(tr -c '[:alpha:]' 'n' < lorem-ipsum.txt | grep -c '(.)1')" ]

最新更新