GNUの拡張機能がタブを8列未満に変換するのはなぜですか?

GNUの拡張機能がタブを8列未満に変換するのはなぜですか?

を使用すると、expandタブをいくつのスペースに変換するかを理解できません。からinfo expand

デフォルトでは、拡張はすべてのタブ文字を空白に変換します。出力でバックスペース文字を保持し、タブで計算される列数を減らします。デフォルトの操作は-t 8(8列ごとのタブ設定)と同じです。

しかし:

$ cat file
aa  bb
$ cat -A file
aa^Ibb$
$ wc -m file
6 file
$ expand file > file2
$ cat -A file2
aa      bb$
$ wc -m file2
11 file2

ここではタブを6つの列に変換します。なぜ?

答え1

~からオープングループの説明expand:

これ拡張ユーティリティは、ファイルまたは標準入力を標準出力に書き込んで、その文字を次のタブ停止まで埋めるために必要な文字に<tab>置き換える必要があります。<space>

-t 8場所タブ止める8文字で区切られます。入力のaaタブ()の前の行の先頭には2つの異なる文字があるため、次のタブの停止に移動するには6つのスペースしか必要ありません。

関連情報