我需要将一个文件中的单个列条目与第二个文件中的列条目匹配,贝壳)。我使用的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