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 t
caracteres. 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.
\t
nased
instrução porCTRL-V<TAB>
onde<TAB>
está a tecla Tab e aCTRL-V
tecla Control ev
pressionadas juntas.