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'