我正在努力完成以下任务,即在具有制表符分隔字段的两个文件之间比较字段的一部分(3 美元)。文件与其他字段 $1-2 逐行匹配,但 $3 略有不同。我只对 $3 的一部分感兴趣,即AF的数值。$3 中的所有子字段(?)都用分号分隔,但如您所见,AF值并不总是在该位置(有时是#2,有时是#3)。我想拔出文件之间第三个字段中AF的值不同的行。
例如,这是示例文件 1:
dmel_mitochondrion_genome 18984 AB=0.743;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19066 AB=0.684;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19074 AB=0.321;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19212 AC=8;AF=1.00;AN=8;DP=382;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19285 AC=8;AF=1.00;AN=8;DP=342;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19384 AC=8;AF=1.00;AN=8;DP=400;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19395 AC=8;AF=1.00;AN=8;DP=398;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19461 AB=0.524;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19472 AB=0.527;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19475 AC=8;AF=1.00;AN=8;BaseQRankSum=0.936;DP=$
和示例文件2:
dmel_mitochondrion_genome 18984 AB=0.730;AC=4;**AF=1.00**;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19066 AB=0.742;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19074 AB=0.345;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19212 AC=8;AF=1.00;AN=8;BaseQRankSum=1.722;DP=$
dmel_mitochondrion_genome 19285 AC=8;AF=0.50;AN=8;BaseQRankSum=1.721;DP=$
dmel_mitochondrion_genome 19384 AC=8;AF=1.00;AN=8;BaseQRankSum=1.458;DP=$
dmel_mitochondrion_genome 19395 AC=8;AF=1.00;AN=8;DP=391;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19461 AB=0.510;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19472 AB=0.526;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19475 AC=8;AF=0.50;AN=8;BaseQRankSum=-1.732;DP$
我想得到的输出是 file1 中的以下几行:
dmel_mitochondrion_genome 18984 AB=0.743;AC=4;AF=0.50;AN=8;BaseQRankSum=$
dmel_mitochondrion_genome 19285 AC=8;AF=1.00;AN=8;DP=342;DS;Dels=0.00;FS$
dmel_mitochondrion_genome 19475 AC=8;AF=1.00;AN=8;BaseQRankSum=0.936;DP=$
甚至是这样的:
dmel_mitochondrion_genome 18984 AF=0.50
dmel_mitochondrion_genome 19285 AF=1.00
dmel_mitochondrion_genome 19475 AF=1.00
我尝试使用 awk 但我不知道如何比较部分字段而不是整个字段。我终于想出了如何使用正则表达式从一个文件的每一行中查找 AF 的值,但不知道如何捕获该值以将其与另一个文件中的另一个值进行比较。任何帮助深表感谢!