我想要使用file1
(它只是一個唯一的ID列表)過濾file2
中的特定字段($7
)。下面的awk
運行,但不過濾文件(它保持不變)。謝謝 :)。awk過濾另一個特定字段的文件
file1的
ACTA2
ACTC1
AGRN
file2的
Chr Start End Ref Alt Func.refGene Gene.refGene GeneDetail.refGene
chr1 977330 977330 T C intronic AGRN 0
chr1 981931 981931 A G exonic AGRN 0
chr1 982994 982994 T C exonic AGRN 0
chr1 1269554 1269554 T C exonic TAS1R3 0
chr1 1647778 1647778 C G intronic CDK11A CDK11B
chr1 1647814 1647814 T C exonic CDK11A CDK11B
期望的輸出
Chr Start End Ref Alt Func.refGene Gene.refGene GeneDetail.refGene
chr1 977330 977330 T C intronic AGRN 0
chr1 981931 981931 A G exonic AGRN 0
chr1 982994 982994 T C exonic AGRN 0
AWK
awk 'NR==FNR{for (i=1;i<=NF;i++) a[$i];next} !($7 in a)' file1 FS="[ =]" file2 > output.txt
a[$i]
是用來放所有項目file1中到用於確保僅file1的使用陣列a
,NR==FNR
。在第二部分中,將FS
設置爲空格或"="
,然後比較$7
中的file2
是否在此數組中,如果是,則打印它。
非常感謝你:)。我以爲我需要循環通過file1迭代,但我現在看到我不是正確的,再次感謝:)。 – Chris