合并特定列中的前两行

时间:2019-08-30 01:38:55

标签: awk

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

第二行是V1 V2 V3 V4 A B 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中的前两行融合在一起

2 个答案:

答案 0 :(得分:2)

保存第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

答案 1 :(得分:2)

请您也可以尝试以下方法。

(empty), +0000, -0400, +1030

输出如下。

awk 'FNR==1{val=$1;next} FNR==2{$0=$0 val} 1' Input_file | column -t