
単語数でテキストファイルを検索する必要があります。ファイルには文行が含まれており、行数ではなく単語が表示される回数にのみ関心があります。行の代わりに単語を検索するようにgrepにどのように指示しますか?
grep -c '^ab'
たとえば、(で始まる単語)を使用すると、で始まる単語の数ではなく、で始まる行数だけがab
返されます。ab
ab
答え1
GNU grepを使用すると、この-o
フラグを使用してすべての一致を取得し、数を計算できますwc -l
。
grep -o '\<ab' file.txt | wc -l
あるいは、grep自体を使って計算することもできそうです。
grep -o '\<ab' file.txt | grep -c ''
(「\<
」は「単語の始まり」を意味します。)
答え2
file.txt
行数ではなく単語数を計算するには、各単語を1行に入力します。
tr " " "\n" file.txt | grep -c '^ab'