繁体   English   中英

如何在命令行中输入tab char?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM