【问题标题】:Match Columns Between 2 Files and Print匹配 2 个文件之间的列并打印
【发布时间】:2014-11-09 21:02:36
【问题描述】:

我有两个文件,fileAfileB如下图:

fileA:

chrM    150     .       T       C       7807.77 PASS    AC=2;AF=1.00;AN=2;DP=247;Dels=0.00;FS=0.000;HaplotypeScore=4.7038;MLEAC=2;MLEAF=1.00;MQ=51.13;MQ0=0;QD=31.61;VQSLOD=3.92;culprit=MQ;EFF=intergenic_region(MODIFIER||||||||)     GT:AD:DP:GQ:PL       1/1:0,247:247:99:7836,727,0
chrM    195     .       C       T       5638.77 PASS    AC=2;AF=1.00;AN=2;DP=176;Dels=0.00;FS=0.000;HaplotypeScore=2.5193;MLEAC=2;MLEAF=1.00;MQ=42.23;MQ0=0;QD=32.04;VQSLOD=3.62;culprit=MQ;EFF=intergenic_region(MODIFIER||||||||)     GT:AD:DP:GQ:PL       1/1:0,176:176:99:5667,517,0
chrM    199     rs72619362      T       C       5058.77 PASS    AC=2;AF=1.00;AN=2;DB;DP=169;Dels=0.00;FS=0.000;HaplotypeScore=0.7887;MLEAC=2;MLEAF=1.00;MQ=39.55;MQ0=0;QD=29.93;VQSLOD=4.68;culprit=MQ;EFF=intergenic_region(MODIFIER||||||||)       GT:AD:DP:GQ:PL  1/1:0,169:169:99:5087,472,0
chrM    204     rs3135032       T       C       4110.77 PASS    AC=2;AF=1.00;AN=2;DB;DP=168;Dels=0.00;FS=0.000;HaplotypeScore=0.0000;MLEAC=2;MLEAF=1.00;MQ=39.77;MQ0=0;QD=24.47;VQSLOD=2.90;culprit=MQ;EFF=intergenic_region(MODIFIER||||||||)       GT:AD:DP:GQ:PL  1/1:0,168:168:99:4139,435,0

fileB:

chrM    150   .       T       C       15      sfail   3       GT:DP:FT:GQ:GL          1/0:4:PASS:30:-3.27436,-0.000346498,-12.6286
chr1    10025   .       T       C       15      sfail   3       GT:DP:FT:GQ:GL          1/0:4:PASS:30:-3.27436,-0.000346498,-12.6286

如果两个文件的前两列都匹配,那么输出应该是fileA的所有列和fileB的第10列。

如果我必须只匹配列,我可以这样做:

awk 'FNR==NR {a[$0]; next} $0 in a' fileA fileB

但是从fileB 获取第 10 列有点棘手。我怎样才能做到这一点?

【问题讨论】:

    标签: bash awk


    【解决方案1】:

    听起来你想要的只是

    awk 'FNR==NR {a[$1,$2]=$0; next} ($1,$2) in a {print a[$1,$2], $10}' fileA fileB
    

    通过字段$1$2 存储来自fileA 的行。 对于fileB 中与存储字段匹配的每一行,打印出存储的行和当前行的第十个字段。

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      相关资源
      最近更新 更多