如何使用 shell 连接两两列

如何使用 shell 连接两两列

例如,我的条目中有 10 列,我希望输出有 5 列。更具体地说,我想连接第 1 列和第 2 列、第 3 列和第 4 列、第 5 列和第 6 列,依此类推。

我的输入如下:

ID01 1 2 0 1 2 0 1 0 
ID02 1 0 1 0 1 0 1 0 
ID03 2 1 0 2 1 0 2 1 
ID04 5 0 5 0 5 2 1 2 

我希望我的输入如下:

ID01 12 01 20 10 
ID02 10 10 10 10 
ID03 21 02 10 21 
ID04 50 50 52 12 

为此,我尝试了: perl -alne 'print join "", $F[0], split(" ", $F[1])' data 但我不知道如何分割两到两个字符/列。我的真实数据有数十万列。

答案1

删除所有其他空格:

perl -pe 's/ (\S+) / $1/g'
  • \S代表“非空白”。

答案2

awk

awk '{ print $1, $2 $3, $4 $5, $6 $7, $8 $9 }' /path/to/input

相关内容