Sim, diferentemente do GNU sed
FreeBSD sed
não interpreta sequências de escape ANSI C como \t
em expressões regulares.
Uma maneira de obter um denominador menos comum neste caso é usar printf
.
tab="$(printf '\t')"
printf '\t\n' | sed 's/'"${tab}"'/,/g'
printf '\t\n' | sed 's/'"$(printf '\t')"'/,/g'
O comportamento de sed -i
para edições de arquivos no local pode ser compatível se um switch ou opção seguir imediatamente a opção -i
, e. g. sed -i -e 's/x/X/g' file
funciona tanto para o GNU sed
quanto para o FreeBSD sed
.
As versões recentes do FreeBSD sed
(FreeBSD 8.1 ou mais recente) possuem a opção -r
para aumentar a compatibilidade com o GNU sed
.
(Além disso, o uso de classes de caracteres POSIX em sed
expressões regulares é uma boa maneira de garantir compatibilidade também).
Para uma alternativa, implementação sed
em conformidade com POSIX, consulte: minised - uma implementação de SED menor, mais barata e mais rápida .