根据列匹配合并数据

时间:2013-05-31 12:29:52

标签: sed awk

我有一条记录如下(输入)。有8个字段,每个字段用tab space分隔。从上面的记录我需要根据{{生成一个新文件如下1}}列匹配。

输入文件:

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

1 个答案:

答案 0 :(得分:1)

您的示例1,2,4,5不匹配!您有yY

尝试使用$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