我需要將一個文件中的單個列條目與第二個文件中的列條目匹配,貝殼)。我使用的awk命令只匹配列表的第一個單詞,並且不掃描列字段中的整個列表。將一個文件中的單列條目匹配到第二個文件中的列條目,該列條目由一個列表組成
文件1是這樣的:
chr1:725751 LOC100288069
rs3131980 LOC100288069
rs28830877 LINC01128
rs28873693 LINC01128
rs34221207 ATP4A
文件2如下所示:
Annotation Total Genes With Ann Your Genes With Ann) Your Genes No Ann) Genome With Ann) Genome No Ann) ln
1 path hsa00190 Oxidative phosphorylation 55 55 1861 75 1139 5.9 9.64 0 0 ATP12A ATP4A ATP5A1 ATP5E ATP5F1 ATP5G1 ATP5G2 ATP5G3 ATP5J ATP5O ATP6V0A1 ATP6V0A4 ATP6V0D2 ATP6V1A ATP6V1C1 ATP6V1C2 ATP6V1D ATP6V1E1 ATP6V1E2 ATP6V1G3 ATP6V1H COX10 COX17 COX4I1 COX4I2 COX5A COX6B1 COX6C COX7A1 COX7A2 COX7A2L COX7C COX8A NDUFA5 NDUFA9 NDUFB3 NDUFB4 NDUFB5 NDUFB6 NDUFS1 NDUFS3 NDUFS4 NDUFS5 NDUFS6 NDUFS8 NDUFV1 NDUFV3 PP PPA2 SDHA SDHD TCIRG1 UQCRC2 UQCRFS1 UQCRH
預期輸出:
rs34221207 ATP4A hsa00190
(請原諒的格式 - 所有列製表符分隔,直到基因名稱列14美元,稱爲Genome ...)
我的命令是這樣的:
awk 'NR==FNR{a[$14]=$3; next}a[$2]{print $0 "\t" a[$2]}' file2 file 1
所有幫助將非常感激!
這兩個文件有匹配嗎? –
基於這兩個文件的預期輸出是什麼? – oliv
我編輯了你的'file2',使它包含字符串'LOC100288069'作爲第14個字段,並且我運行了'awk'代碼......它按預期工作。很明顯,使用'file1'和'file2'的例子,你的'awk'代碼不能打印任何東西。 – Jdamian