据我了解,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
(它不会用制表符替换单个空格)