Isso deve ser muito simples, mas por algum motivo não está funcionando:
sed -i.bak -E 's/\t/ /' file.txt
Em vez de substituir caracteres de tabulação, está substituindo tcaracteres. Eu tentei todas as variações que pude pensar, brincando com citações, etc. Pesquisei no Google e encontrei todo mundo usando expressões muito semelhantes e elas parecem funcionar para elas.
O -Eé uma coisa do OS X. Eu pensei que a falha poderia ser o resultado de alguma peculiaridade estranha do OS X sed, então eu tentei com o Ruby também (sem o -i) e obtive o mesmo resultado:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Estou usando o Bash 3.2.51 no OS X e no iTerm, embora não consiga ver como isso poderia ser terrivelmente relevante. Eu não defini nenhuma variável de ambiente estranha, embora eu possa postar alguma que você ache relevante.
O que pode estar errado?
ATUALIZAÇÃO : Devo ter feito algum outro erro ou erro de digitação quando eu tentei a versão Ruby, desde Gilles salienta que faz o trabalho (e eu já não tinha ele me orientar errado!). Não tenho certeza do que aconteceu, mas tenho certeza de que deve ter sido meu erro.
\tnasedinstrução porCTRL-V<TAB>onde<TAB>está a tecla Tab e aCTRL-Vtecla Control evpressionadas juntas.