Это должно быть действительно просто, но по какой-то причине это не работает:
sed -i.bak -E 's/\t/ /' file.txt
Вместо замены символов табуляции, это замена tсимволов. Я перепробовал все варианты, которые мог придумать, играя с цитатами и т. Д. Я гуглил и нашел всех остальных, использующих довольно похожие выражения, и они, похоже, работают на них.
Это -EOS X вещь. Я думал, что сбой может быть результатом какой-то странной причуды OS X sed, поэтому я попробовал это и с Ruby (без -i), и получил тот же результат:
ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new
Я использую Bash 3.2.51 на OS X и iTerm, хотя я не понимаю, насколько это может быть очень актуально. Я не установил никаких странных переменных окружения, хотя могу опубликовать любые, которые, по вашему мнению, могут иметь отношение к делу.
Что может быть не так?
UPDATE : Должно бытья сделал некоторую другую ошибку или опечаткукогда я попробовал версию Ruby, такЖиль указывает, что он делает работу (и я никогда и не было ему рулить меня неправильно!). Я не уверен, что случилось, но я почти уверен, что это была моя ошибка.
\tвsedзаявлении,CTRL-V<TAB>где<TAB>находится клавиша табуляции и клавишаCTRL-Vуправления иvнажата вместе.