sed 's/\.[[:space:]]\{1,\}/. /g'
Substituiria um ponto (correspondido por \. ou [.] , lembre-se . corresponde a qualquer caractere) seguido por um ou mais caracteres de espaço em branco ( [[:space:]] sendo o equivalente padrão de \s ) com . seguido por dois espaços.
Você também pode fazer isso para ! e ? :
sed 's/\([.!?]\)[[:space:]]\{1,\}/ /g'
Com versões recentes do GNU sed , você pode encurtá-lo para:
sed -E 's/([.!?])\s+/ /g'
Ou com perl :
perl -lne 's/[.!?]\K\s+/ /g'
[[:space:]] e \s correspondem a qualquer caractere de espaço em branco (embora com perl esteja limitado aos caracteres ASCII). Isso inclui caracteres CR, que ocorrem no final das linhas em arquivos de texto do MS-DOS, mas geralmente não são usados como espaçamento. Portanto, esses comandos podem acabar quebrando delimitadores de linha do MS-DOS se aplicados em arquivos formatados do MS-DOS.
Em vez de [[:space:]] / \s , você pode usar [[:blank:]] / \h que não incluem CR ( \h é suportado por perl , mas não o GNU sed ).