To powinno być naprawdę proste, ale z jakiegoś powodu nie działa:
sed -i.bak -E 's/\t/ /' file.txt
Zamiast zastępować znaki tabulacji, zastępuje t
znaki. Wypróbowałem każdą odmianę, o której mogłem pomyśleć, bawiąc się cytowaniem itp. Poszukałem google i znalazłem, że wszyscy używają podobnych wyrażeń i wydaje się, że działają dla nich.
To -E
jest OS X. Myślałem, że niepowodzenie może być wynikiem dziwnego dziwactwa OS X sed
, więc wypróbowałem to również z Ruby (bez -i
) i uzyskałem ten sam wynik:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Używam Bash 3.2.51 na OS X i iTerm, chociaż nie widzę, jak którekolwiek z nich może być bardzo istotne. Nie ustawiłem żadnych dziwnych zmiennych środowiskowych, choć mogę opublikować dowolne, które Twoim zdaniem mogą być istotne.
Co może być nie tak?
UPDATE : Muszę dokonały jakiś inny błąd lub literówka kiedy próbowałem wersji Ruby, ponieważ Gilles zaznacza, że robi pracę (a ja nigdy nie miałem go skierować mnie źle!). Nie jestem pewien, co się stało, ale jestem prawie pewien, że to był mój błąd.
\t
w miejscused
, wCTRL-V<TAB>
którym<TAB>
znajduje się klawisz Tab iCTRL-V
klawisz Control iv
naciśnięcie razem.