\s
significa que o espaço em sed
não é portátil - por exemplo, em implementações POSIX, sua expressão não corresponderá, por exemplo, (GNU sed, no modo posix):
$ echo "abc:def" | sed --posix -e 's/[^\s]\+:[^\s]\+/ : /g'
abc:def
No entanto, se sua expressão tiver correspondência, ela não fará o que você deseja, pois substituirá toda a sequência, por exemplo, (GNU sed, no modo não posix):
$ echo "abc:def" | sed -e 's/[^\s]\+:[^\s]\+/ : /g'
:
Provavelmente, o que você deseja é algo mais como s/\([^[:blank:]]\):\([^[:blank:]]\)/ : /
, por exemplo,
$ echo "abc:def" | sed -e 's/\([^[:blank:]]\):\([^[:blank:]]\)/ : /g'
abc : def
[Até onde eu posso ver, o operador de repetição \+
- que também não é portátil - é desnecessário.]