0

我有如下记录(输入)。有8字段,每个字段由 分隔tab space。从上面的记录中,我需要根据1,2,4,5列匹配生成一个新文件,如下所示。

输入文件:

-10 68120047    .   X   Y   .   Pass    A=0.0257732
-10 68120047    .   X   Y   .   Pass    B=0.0263158
-10 68120047    .   X   Y   .   Pass    C=0.0280899

输出

-10 68120047    .   X   Y   .   Pass    A=0.0257732;B=0.0263158;C=0.0280899
4

1 回答 1

1

你的例子1,2,4,5不匹配!你有y并且Y

试试这个$1 and $2作为关键的单线。你也可以添加$1 $2 $4 $5

awk '{r=$NF;k=$1$2;a[k]=a[k]?a[k]";"r:$0}END{for(x in a)print a[x]}' file

在文件中包含您的内容:

kent$  awk '{r=$NF;k=$1$2;a[k]=a[k]?a[k]";"r:$0}END{for(x in a)print a[x]}' file 
-10  68120047    .   X   Y   .   Pass    A=0.0257732;B=0.0263158;C=0.0280899
于 2013-05-31T12:42:35.813 回答