为什么这个 unexpand 似乎不起作用?

为什么这个 unexpand 似乎不起作用?

据我了解,unexpand可以用制表符替换多个空格。

我有一个文件,x.x其中包含内容

1  2   3  4 5

我输入expand x.x但输出仍然是

1  2   3  4 5

现在似乎没有选项卡。我缺少什么?

同样expand x.x -t20似乎仍然给出相同的输出

答案1

expand 展开选项卡(基于您指定制表位的距离),并unexpand取消展开选项卡。

$ printf '1\t2\t3\n' | expand -t12 | tr ' ' _
1___________2___________3

(每 12 列使用制表位展开制表符)。

$ echo 1___________2___________3 | tr _ ' ' | unexpand -t4 | tr '\t' t
1ttt2ttt3

(每 4 列使用制表位取消展开)。

如果您的输入没有TAB字符,expand则不会对其执行任何操作。

        0         1
        0123456789012
$ echo '1  2   3  4 5' | unexpand -t 3,7,10,12 | tr '\t' t
1t2t3t4 5

(它不会用制表符替换单个空格)

相关内容