expand
expande as guias (com base em até onde você especificar as paradas de tabulação) e unexpand
unexpandas.
$ printf '1\t2\t3\n' | expand -t12 | tr ' ' _
1___________2___________3
(expanda as guias com tabulações a cada 12 colunas).
$ echo 1___________2___________3 | tr _ ' ' | unexpand -t4 | tr '\t' t
1ttt2ttt3
(unexpand com paradas de tabulação a cada 4 colunas).
Se sua entrada não tiver TAB
caracteres, expand
não fará nada sobre ela.
0 1
0123456789012
$ echo '1 2 3 4 5' | unexpand -t 3,7,10,12 | tr '\t' t
1t2t3t4 5
(não substituirá um único espaço por uma guia)