O problema no primeiro caso é a citação: Se você quiser usar : como o separador, não poderá usá-lo sem aspas nos espaços de caracteres. Além disso, . tem um significado especial em uma expressão regular - combina qualquer caractere. Para corresponder ao ponto literal, use \. . Além disso, [:space:] deve ser usado dentro de uma classe de caracteres, então você deve usar [[:space:]] . Finalmente, as classes de caracteres não têm significado na parte de substituição da expressão.
Isso deve funcionar:
sed 's/;[[:space:]]f\./, (frequent)./g'