I can't fully understand how the -t parameter of the expand command work. Below is an excerpt from its manpage.
NAME
expand - convert tabs to spaces
...
-t, --tabs=N
have tabs N characters apart, not 8
What exactly does have tabs N characters apart mean? I did some testing.
root@u2004:~# printf "a\tb\n"
a b
root@u2004:~# printf "a\tb\n" | od -a
0000000 a ht b nl
0000004
root@u2004:~# printf "a\tb\n" | expand | od -a
0000000 a sp sp sp sp sp sp sp b nl
0000012
root@u2004:~# printf "a\tb\n" | expand -t 4 | od -a
0000000 a sp sp sp b nl
0000006
root@u2004:~# printf "a\tb\n" | expand -t 5 | od -a
0000000 a sp sp sp sp b nl
0000007
root@u2004:~#
As you can see, when I pass -t 4, the tab was replaced to 3 spaces. So, in reality, "have tabs 4 characters apart" just means tabs were replace with 3 spaces? I can't understand. Btw, I'm not a native English speaker and it's possible that this is an English related question.