如何在bash shell中输入文字制表符?


72

例如,我想使用带有-t选项的sort实用程序来指定制表符分隔符,但是

sort -t "\t"

不起作用。

Answers:


85

不要使用双引号。

sort -t $'\t'

或者我认为Ctrl V会插入一个制表符?

编辑:

http://www.gnu.org/s/bash/manual/html_node/ANSI_002dC-Quoting.html#ANSI_002dC-Quoting


制表符不插入制表符吗?
RedGrittyBrick

4
@RedGrittyBrick选项卡完成。
丹尼尔·贝克

12
仅Control-V无效。Control-V + Tab将。我喜欢这个$'...'把戏。现在学到了一些新东西。:-)
L2G

我一直都学着$' '。它允许您输入字符串,但也可以转义字符。双引号字面会显示出来\t如果省略引号,则会出现制表符。
surfasb

59

尝试Control- v然后Tab。如果您在右侧看到光标选项卡,则它起作用。

根据Mark的评论,您还可以尝试Control- v然后Control- i


当我这样做时,我得到一个真实的制表符(即缩进)。
丹尼尔·贝克

2
哎呀。你是对的。但是它正在输入制表符,而不是执行命令行完成(这是bash通常使用制表符执行的操作)。我尝试了sort -t " "(如上所述,使用文字标签),它对我有用。
L2G

是的,这就是我所说的缩进。不知道一个更好的词。
丹尼尔·贝克

1
Ctrl-v,Ctrl-i也可以工作(我在这里找到了这个答案)。另外,我认为Ctrl-q,Ctrl-v,Tab也可以。谢谢L2G!
标记

顺便说一句,我很想接受两个答案,但是由于我认为surfasb的解决方案更具可读性,因此我接受了她的。我也喜欢你的,所以投了赞成票。谢谢!
标记
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.