2017-09-05 11 views
0

に下記の空欄いる間これは印刷、同じ単語を順次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 

input.tsv集計短縮され、私は空白のフィールドに上に見られるのと同じ言葉を印刷したいとファイルの最後まで1番目、2番目、3番目の列に適用します。別の言葉が現れたら、下の印刷はこの新しい言葉でなければなりません。出力は次のようになります。

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 
関連する問題