它在VIM中看起来像set tabstop=4
,但我不知道如何在bash中设置它
例如:
echo -e "1234567890\t321\n1\t2\n123\t1"
当前输出:
1234567890 321
1 2
123 1
我想要这样的输出:
1234567890 321
1 2
123 1
它可以像cat somefile
或php -r 'echo "\t123";'
一样在任何地方显示
如何在bash中设置标签宽度?
发布于 2012-05-28 18:09:44
这不是您的shell (或php或cat)的属性。管理输出的是您的终端。
使用tabs
命令更改行为:
$ tabs 4
$ echo -e "a\tb"
a b
$ tabs 12
$ echo -e "a\tb"
a b
(tabs
是在POSIX中指定的,上面的输出是“伪造的”:它仍然是两个字母之间的制表符。)
发布于 2012-05-28 20:38:55
可以使用tabs
工具设置定期或不规则间隔。无论你是自己输出,还是使用cat
输出已经包含标签的文件,还是使用你不能控制的程序输出,它都可以工作。
但是,如果要控制输出,最好使用printf
而不是echo
,使用格式化字符串而不是制表符。
$ printf '%-12s%8.4f %-8s%6.2f\n' 'Some text' 23.456 'abc def' 11.22
Some text 23.4560 abc def 11.22
$ format='%*s%*.*f %*s%*.*f\n'
$ printf "$format" -12 'Some text' 8 4 23.456 -8 'abc def' 6 2 11.22
Some text 23.4560 abc def 11.22
除非您希望其他人能够使用tabs
实用程序控制您的程序的输出。
发布于 2015-03-12 06:04:15
您可以使用setterm来设置它
setterm -regtabs 4
我把它放在我的.bash_profile里,但它与bash无关
https://stackoverflow.com/questions/10782699
复制相似问题