2017-09-05 22 views
0

同一个词这是制表input.tsv打印在某些列中同时有空白字段下方先后在UNIX

rs928302  YES  TMPRSS3 rf  G  V  53  NM_001256317.1 NP_001243246.1 
           rf  G  V  53  NM_024022.2  NP_076927.1 
           rf  G  V  53  NM_032405.1  NP_115781.1 
rs1046210  YES  BACE2 rf  C  D  364  NM_012105.4  NP_036237.2 
           rf  C  D  364  NM_138992.2  NP_620477.1 
           rf  C  D  269  XM_017028314.1 XP_016883803.1 
rs1064579  YES  IFNGR2 rf  T  V  272  NM_001329128.1 NP_001316057.1 
           rf  T  V  253  NM_005534.3  NP_005525.2 
           rf  T  V  272  XM_005260969.2 XP_005261026.1 
           rf  T  V  278  XM_011529553.1 XP_011527855.1 
           rf  T  V  255  XM_011529554.2 XP_011527856.1 

一个缩减的和我想在空白字段打印在上面发现了相同的字和适用于第一列,第二列和第三列直到文件结束。当出现不同的单词时,下面的打印应该是这个新单词,等等。所以输出应该是:

rs928302  YES  TMPRSS3 rf  G  V  53  NM_001256317.1 NP_001243246.1 
rs928302  YES  TMPRSS3 rf  G  V  53  NM_024022.2  NP_076927.1 
rs928302  YES  TMPRSS3 rf  G  V  53  NM_032405.1  NP_115781.1 
rs1046210  YES  BACE2 rf  C  D  364  NM_012105.4  NP_036237.2 
rs1046210  YES  BACE2 rf  C  D  364  NM_138992.2  NP_620477.1 
rs1046210  YES  BACE2 rf  C  D  269  XM_017028314.1 XP_016883803.1 
rs1064579  YES  IFNGR2 rf  T  V  272  NM_001329128.1 NP_001316057.1 
rs1064579  YES  IFNGR2 rf  T  V  253  NM_005534.3  NP_005525.2 
rs1064579  YES  IFNGR2 rf  T  V  272  XM_005260969.2 XP_005261026.1 
rs1064579  YES  IFNGR2 rf  T  V  278  XM_011529553.1 XP_011527855.1 
rs1064579  YES  IFNGR2 rf  T  V  255  XM_011529554.2 XP_011527856.1 

在Unix环境下怎么做呢?提前致谢。

回答

1
awk ' 
BEGIN { FS=OFS="\t" } 
{ 
    for (i=1; i<=3; i++) { 
     if ($i == "") { 
      $i = p[i] 
     } 
     else { 
      p[i] = $i 
     } 
    } 
    print 
} 
' file 
+1

它工作正常!非常感谢 –

1

AWK解决方案:

输出:

rs928302 YES TMPRSS3 rf  G  V  53  NM_001256317.1 NP_001243246.1 
rs928302 YES TMPRSS3 rf  G  V  53  NM_024022.2  NP_076927.1 
rs928302 YES TMPRSS3 rf  G  V  53  NM_032405.1  NP_115781.1 
rs1046210 YES BACE2 rf  C  D  364  NM_012105.4  NP_036237.2 
rs1046210 YES BACE2 rf  C  D  364  NM_138992.2  NP_620477.1 
rs1046210 YES BACE2 rf  C  D  269  XM_017028314.1 XP_016883803.1 
rs1064579 YES IFNGR2 rf  T  V  272  NM_001329128.1 NP_001316057.1 
rs1064579 YES IFNGR2 rf  T  V  253  NM_005534.3  NP_005525.2 
rs1064579 YES IFNGR2 rf  T  V  272  XM_005260969.2 XP_005261026.1 
rs1064579 YES IFNGR2 rf  T  V  278  XM_011529553.1 XP_011527855.1 
rs1064579 YES IFNGR2 rf  T  V  255  XM_011529554.2 XP_011527856.1 
相关问题