Это должно быть действительно просто, но по какой-то причине это не работает:
sed -i.bak -E 's/\t/ /' file.txt
Вместо замены символов табуляции, это замена t
символов. Я перепробовал все варианты, которые мог придумать, играя с цитатами и т. Д. Я гуглил и нашел всех остальных, использующих довольно похожие выражения, и они, похоже, работают на них.
Это -E
OS 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
нажата вместе.