Поскольку этот вопрос помечен как "bash" ... использование функции "цитирования ANSI-C" оболочки Bash, вероятно, предпочтительнее.Он расширяет escape-последовательности ANSI C-стиля, такие как \t
и \n
, и возвращает результат в виде строки в одинарных кавычках.
echo $string | sed $'s/_/\t/g'
Это не зависит от вашего терминала, понимающего элемент управления + V (буквально вставлять следующий символ) - привязка клавиш - некоторые не могут.Кроме того, поскольку все «невидимые» символы могут быть представлены буквально, ваше решение может быть скопировано без потери информации и будет гораздо более очевидным / долговечным, если вы используете включение этого вызова sed
в сценарий, который другойлюди могут закончить чтение.
Также обратите внимание, что версия sed
для macOS является BSD-версией.GNU sed
будет прекрасно интерпретировать экранирование символов, например \t
в шаблоне замены, и вам даже не потребуется обходной путь.
Вы можете установить GNU sed с MacPorts , ион должен быть доступен как gsed
, но Homebrew может заменить sed
вашей системы в зависимости от того, как устроена переменная $PATH
.