如何将额外的空格更改为标签

时间:2015-03-11 16:51:31

标签: awk

我有大量额外空格或双标签等文件。是否可以将所有这些更改为制表符分隔?

我试过这个

awk -v OFS='\t' '{print $0}'

输入

E       0.000000 0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000    0.000000 0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000    0.000000 0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000    0.000000 0.000000        0.000000        0.000000        0       0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000        0.000000

2 个答案:

答案 0 :(得分:3)

sed -r 's/\s+/\t/g' file

如果您的sed不支持\s使用[[:space:]]

或者:

awk -v OFS='\t' '{$1=$1}1' file

awk脚本也会删除前导和尾随空格。

答案 1 :(得分:2)

尝试:

sed 's/ \+/\t/g' file

例如

kent$  echo "a       b    c             d"|sed 's/ \+/\t/g' 
a       b       c       d