我正在尝试使用扩展命令将所有制表符转换为空格。
命令: cat department.txt
输出 :
1 QA
2 DEV
3 OPS
在执行扩展department.txt时;输出仍然相同。
我已使用 od -c 验证我的文件包含制表符。有人可以解释为什么扩展不起作用吗?
更新:正如穆鲁在下面的评论中指出的那样;我对扩展命令有错误的期望,我期望制表符被转换为单个空格;这引起了混乱。 Expand 命令将制表符转换为等效的空格。
答案1
要将制表符转换为单个空格,您仍然可以使用expand
, 并将制表位设置为 1 而不是默认的 8:
$ expand foo
1 QA
2 DEV
3 OPS
$ expand -t1 foo
1 QA
2 DEV
3 OPS
但是,这仍然会将连续的选项卡扩展为单独的空格:
$ vim foo
$ expand foo
1 QA
2 DEV
3 OPS
$ expand -t1 foo
1 QA
2 DEV
3 OPS
根据您想要的行为,您可以使用它或tr
:
$ tr -s '\t' ' ' < foo
1 QA
2 DEV
3 OPS