0

我有一个包含这些模式的单词的文件

word word2
word
word word
word wordword

我需要计算所有只是'word'而不是'word2'或wordword的单词。

我试过

$ grep 'word[^a-ZA-Z0-9 | $]' testWordCount.txt       
$ grep 'word[^a-ZA-Z0-9]' testWordCount.txt    
$ grep 'word[$| ]' testWordCount.txt

抱歉,如果其中一些没有意义。我正在学习正则表达式。很抱歉没有包括用于正则表达式的工具。

4

2 回答 2

2

使用以下正则表达式匹配行:

/\bword\b/

\b是一个单词边界锚,它将匹配单词的开头、单词的结尾、行的开头或行的结尾。

您可以在RegexPal测试此表达式。


我看到你正在使用 grep - 这个正则表达式引擎使用\<\>转义词边界。

/\<word\>/

此外,这里是计算 bash 中所有实例的方法:

cat testWordCount.txt | tr ' ' '\n' | grep -c '\<word\>'
于 2012-05-29T00:57:29.540 回答
0

egrep -o 在一行上打印匹配的标记,最后可以很容易地计算出来。\b表示边界或类似的东西。

egrep -o "\bword\b" words.txt | wc 
于 2012-05-29T01:56:03.430 回答