Para ser um "não-período", a sequência [^.]
é o que você deseja. Nos seus exemplos, você tem um \
na frente do [
, o que está errado.
Então, por exemplo:
foo("some text").arg("more text");
foo("some text");
% sed 's/foo("some text")[^.]/replaced text/' tstfile
foo("some text").arg("more text");
replaced text
Observe que isso também substituiu o caractere após o foo(..)
. Se você quiser manter isso, então podemos lembrar:
% sed 's/foo("some text")\([^.]\)/replaced text/' tstfile
foo("some text").arg("more text");
replaced text;