How to set 4 space tab in bash

Zheng Kai picture Zheng Kai · May 28, 2012 · Viewed 33.8k times · Source

It look like set tabstop=4 in VIM, but I don't know how to set it in bash

for example:

echo -e "1234567890\t321\n1\t2\n123\t1"

current output:

1234567890      321
1       2
123     1

I want output like this:

1234567890  321
1   2
123 1

It can be shown in anywhere, just like cat somefile or php -r 'echo "\t123";'

How can I set tab width in bash?

Answer

Mat picture Mat · May 28, 2012

That's not a property of your shell (or php or cat). It's your terminal that manages the output.

Use the tabs command to change the behavior:

$ tabs 4

$ echo -e "a\tb"      
a   b
$ tabs 12

$ echo -e "a\tb" 
a           b

(tabs is specified in POSIX, and output above is "faked": it's still a tab character between the two letters.)