【发布时间】:2017-04-25 10:55:40
【问题描述】:
我有两个文件
file1:
>string1<TAB>Name1
>string2<TAB>Name2
>string3<TAB>Name3
file2:
>string1<TAB>sequence1
>string2<TAB>sequence2
我想使用awk 来比较各个文件的第 1 列。如果两个文件共享第 1 列值,我想打印 file1 的第 2 列,然后是 file2 的第 2 列。例如,对于上述文件,我的预期输出是:
Name1<TAB>sequence1
Name2<TAB>sequence2
这是我的代码:
awk 'BEGIN{FS=OFS="\t"} FNR == NR { a[$1] = $1; next } $1 in a { print a[$2], $2 }' file1 file2 >out
但我唯一得到的是一个空的第一列序列
这里的错误在哪里?
【问题讨论】:
-
a[$1] = $1应该是a[$1] = $2 -
欢迎来到 Stack Overflow。请注意,在这里说“谢谢”的首选方式是投票赞成好的问题和有用的答案(一旦你有足够的声誉这样做),并接受对你提出的任何问题最有帮助的答案(这也给出了你的声誉小幅提升)。请查看About 页面以及How do I ask questions here? 和What do I do when someone answers my question?