Как насчет использования grep для цветного совпадения, а также некоторого PCRE-fu? что-то вроде
grep --color=always -iP '\b[^aeiou\s]*[aeiou][^aeiou\s]*\K[aeiou]'
, где
\b соответствует границе слова; то [^aeiou\s]* соответствует нулю или более негласным, непространственным символам [aeiou], чтобы совместить первый гласный [^aeiou\s]*, совпадающий с другим нулевым или более негласным, непространственным символом \K, чтобы исключить все вышеизложенное из окончательное согласованное выражение (фактически, утверждение переменной длины), наконец, [aeiou], чтобы соответствовать желаемой второй гласной