[英]How to enter a tab char on command line?
在交互式bash终端中,如何输入制表符? 例如,如果我想使用sed将“_”替换为我想使用的标签:
echo $string | sed 's/[_]/TAB/g'
其中TAB表示Tab键。 这不是交互式的shell脚本,当我按Tab键时,我没有任何字符和铮铮声。 我也试过\\t
但它只将t放在字符串而不是标签中。
注意这是mac osx。
用Control + V取代它,然后用Tab取消通常的扩展行为。
由于这个问题被标记为“bash”...使用Bash shell的“ANSI-C引用”功能可能更可取。 它扩展了ANSI C样式的转义序列,例如\\t
和\\n
,并将结果作为单引号字符串返回。
echo $string | sed $'s/_/\t/g'
这不依赖于您的终端理解Control + V (字面插入下一个字符)键绑定 - 有些可能不会。 此外,因为所有“隐形”字符都可以按字面表示,所以您的解决方案可以在不丢失信息的情况下进行复制粘贴,并且如果您在脚本中使用此sed
调用,则其他人可能会更加明显/持久最终阅读。
另请注意,macOS的sed
版本是BSD版本。 GNU sed
会在替换模式中解释像\\t
这样的字符转义就好了,你甚至不需要上面的解决方法。
您可以使用MacPorts安装GNU sed,它应该可以作为gsed
,但Homebrew可能会取代您的系统的sed
具体取决于您如何安排$PATH
变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.