awk:查询两个文件

时间:2017-04-24 20:06:42

标签: bash awk

我有两个文件

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

但我唯一得到的是空的第一列序列

这里的错误在哪里?

1 个答案:

答案 0 :(得分:2)

你的作业不对。

$ awk 'BEGIN   {FS=OFS="\t"}
       NR==FNR {a[$1]=$2; next} 
       $1 in a {print a[$1],$2}' file1 file2

Name1 sequence1
Name2 sequence2