egrepがGNUのような拡張機能のいずれか/すべて/一部をサポートしているかどうかを知るには、solarisのmanページを参照する必要があります。
システムに/usr/ xpg4 / binがありますか?はいの場合、MANPATHに/ usr / xpg4/manが含まれていることを確認してください。そのディレクトリには、/ opt / gnu installのようなものを追加する以外は、最新バージョンが含まれていました。
いずれにせよ、あなたの正規表現'\b.*[aeiou][aeiou][aeiou].*\b'
は私の目には...
1 word-boundary
followed by any number of any chars (including blanks and vowels)
followed by three vowels,
followed by any number of any chars (including blanks and vowels),
followed by 1 word-boundary.
おそらくあなたが本当に望んでいるものではないでしょう。
3つの母音が連続し、古い/正方形の正規表現の長い手を使用して単語のニーズを満たすには、
egrep -i -c '[a-z]*[aeiou][aeiou][aeiou][a-z]*' full.html
つまり、chars [az]を任意の数(noneを含む)、3母音の前に一致させ、その後に任意の数のchars [az](noneを含む)を続けます。したがって、スペース文字は[az]と一致しません。大文字と小文字を区別しないために-iを使用しているため、を使用する必要はありません[A-Za-z]
。明らかに、単語文字と見なしたい他の文字、おそらく'_'
文字?を見つけた場合は、それを両側に追加します。
申し訳ありませんが、私はここでメモリから移動します。Solarisショップで働いていないため、そこでテストできません。
編集
また、grepの現在のシステムのmanページには次のように書かれていることに注意してください。
-c, --count
Suppress normal output; instead print a count of matching lines
for each input file. With the -v, --invert-match option (see
below), count non-matching lines.
一致する行の数ではなく、一致する行の数であることに注意してください。
使いやすいかもしれません
awk '{for (i=1;i<=NF;i++){if ($i ~ /.*[aeiou][aeiou][aeiou].*/) cnt++};}; END{print "count="cnt}'file
IHTH