Ini seharusnya sangat sederhana, tetapi untuk beberapa alasan itu tidak berfungsi:
sed -i.bak -E 's/\t/ /' file.txt
Alih-alih mengganti karakter tab, itu menggantikan tkarakter. Saya telah mencoba setiap variasi dalam hal ini yang dapat saya pikirkan, bermain dengan mengutip, dll. Saya telah mencari di Google dan menemukan orang lain menggunakan ekspresi yang sangat mirip dan mereka sepertinya bekerja untuk mereka.
Ini -Eadalah hal OS X. Saya pikir kegagalan itu mungkin hasil dari beberapa kekhasan aneh OS X sed, jadi saya mencobanya dengan Ruby juga (tanpa -i), dan mendapat hasil yang sama:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Saya menggunakan Bash 3.2.51 pada OS X, dan iTerm, meskipun saya tidak dapat melihat bagaimana hal itu sangat relevan. Saya belum menetapkan variabel lingkungan aneh, meskipun saya dapat memposting apa pun yang menurut Anda mungkin relevan.
Apa yang salah?
UPDATE : Saya harus telah membuat beberapa kesalahan lain atau salah ketik ketika saya mencoba versi Ruby, karena Gilles menunjukkan bahwa itu tidak bekerja (dan saya tidak pernah memiliki dia mengarahkan saya salah!). Saya tidak yakin apa yang terjadi, tetapi saya cukup yakin itu pasti kesalahan saya.
\tdalamsedpernyataan denganCTRL-V<TAB>mana<TAB>adalah kunci tab danCTRL-Vmerupakan kunci kontrol danvditekan bersama-sama.