Se você quiser na saída apenas foo
, então
printf '%s' 'foo.bar3[00m' | sed 's/\.bar\033\[00m//'
Observe que \
e [
precisam escapar de outro \
. Além disso, adicionei '%s'
a printf
para imprimir os caracteres de entrada como string literal, caso contrário, 3[
poderia ser interpretado como código de escape seguido por cor ANSI.
Após a edição da pergunta: Se o seu arquivo contiver caracteres de controle como
printf "foo.bar3[00m" > file
então, para substituí-lo, escreva o seguinte:
sed 's/\.bar
Ctrl-v ESC \[00m//'
Depois de apertar Ctrl-v ESC você deve ver ^[
na tela, mas não o literal ^
e [
(dois caracteres), mas um caractere de controle único.