删除列之间的许多空格,并在列之间只留一个空格

时间:2015-03-23 15:54:31

标签: awk sed gawk

我有一个超过2500列的文件。每个列用制表符或几个空格分隔。

文件中的数据格式如下:

1    1    0
1    1    0
0    1    0
1    0    1
1    0    0
1    1    1
1    0    1

我想删除列之间的标签或许多空白空格,并在列之间只创建一个空格,如下所示。

1 1 0
1 1 0
0 1 0
1 0 1
1 0 0
1 1 1
1 0 1

我如何删除空格?

2 个答案:

答案 0 :(得分:4)

使用sed:

sed 's/[[:space:]]\+/ /g' filename

或者使用tr:

tr -s '[:blank:]' ' ' filename

答案 1 :(得分:3)

这应该做:

awk '{$1=$1}1' file
1 1 0
1 1 0
0 1 0
1 0 1
1 0 0
1 1 1
1 0 1

通过设置$1=$1,它会清除所有空格和标签。 1是打印它。