【发布时间】:2014-06-24 07:33:48
【问题描述】:
我一直在论坛中寻找我的问题的解决方案,但不幸的是我没有成功。我很喜欢 bash;因此,我真的很感激任何建议链接到以前的问题/讨论
我有两个文件:
文件1
Ada ada
Ada ada
Ada aidB
Ada alkA
Ada alkB
Ada alkB
AdiY adiA
AdiY gadA
文件2
NP_414557.1 insL1
NP_414559.1 mokC
YP_025292.1 hokC
NP_414560.1 nhaA
NP_414561.1 nhaR
NP_414562.1 insB1
NP_414563.1 insA
NP_414564.1 rpsT
我想根据第二列比较 file1 和 file2。如果对象相同,我想将 file2 中第 1 列中的文本附加到 file1 中第三列中的特定共享条目。
预期输出: 文件1
PhoB caiT NP_414580.1
PhoP caiE NP_414581.1
PhoP caiB NP_414582.1
请把报告的文字当作例子。
我在 awk 中苦苦挣扎,试图从之前的问题中调整代码:
Compare two files of different columns and print different columns
awk 'NR==FNR{a[$1]=$2 ; next }$2 in a {$1=$1 FS a[$2]print}' file1 file2
非常感谢您的宝贵时间和帮助。
最好的。
【问题讨论】:
-
您的示例输入看起来有点被截断。
caiT来自哪里? -
您的
file1和file2似乎完全没有共同点,您提出的输出与它们中的任何一个都没有共同点。考虑发布一些示例数据,这些示例数据至少有最小的机会展示您所询问的内容...... -
您好,谢谢您的回答。正如我写的那样,我报告的数据只是示例。第二列 file1、file2 和输出具有相同种类的信息。试想一下,PhoB 和 caiT 将出现在 file1 中,caiT 和 NP_414508.1 出现在 file2 中。我希望这能让它更清楚。
-
如果你能解释一下代码就好了。谢谢。