首页 > 解决方案 > 合并特定列中的前两行

问题描述

我有多个制表符分隔文件,其中第一行是 6tabsFILENAME

第二行是 V1 V2 V3 V4 AB FST

如在

                                                comb12.NCs.genes.fst
V1      V2      V3      V4      A       B       FST
NC_011462.1     17853   28371   CLIC6   0       0       NA
NC_011462.1     73261   121925  RUNX1   0       0       NA
NC_011462.1     631101  639557  SETD4   0       0       NA

我想将 col5 line1 与 col5 line2 融合

V1      V2      V3      V4      A       B       FSTcomb12.NCs.genes.fst
NC_011462.1     17853   28371   CLIC6   0       0       NA
NC_011462.1     73261   121925  RUNX1   0       0       NA
NC_011462.1     631101  639557  SETD4   0       0       NA

我试过(循环)

awk '{ORS=(NR==1?"":"\n")}1 ' file

但我明白了

                                                comb12.NCs.genes.fstV1  V2      V3      V4      A       B       FST
NC_011462.1     17853   28371   CLIC6   0       0       NA
NC_011462.1     73261   121925  RUNX1   0       0       NA
NC_011462.1     631101  639557  SETD4   0       0       NA

它融合了前两行,如 line1line2

标签: awk

解决方案


保存第 1 行的信息,然后在到达第 2 行时释放它。之后,只需让默认操作按原样打印行。

$ awk 'NR==1{f = $NF} NR==2{print $0 f} NR>2' file
V1      V2      V3      V4      A       B       FSTcomb12.NCs.genes.fst
NC_011462.1     17853   28371   CLIC6   0       0       NA
NC_011462.1     73261   121925  RUNX1   0       0       NA
NC_011462.1     631101  639557  SETD4   0       0       NA

推荐阅读