0

これらのパターンの単語を含むファイルがあります

word word2
word
word word
word wordword

「word2」やwordwordではなく「word」だけのすべての単語を数える必要があります。

私は試した

$ 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 は、一致するトークンを 1 行に出力します。これは、最後に簡単に数えることができます。境界または類似のもの\bを意味します。

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