合并两个表,包括多次出现的列标识符

合并两个表,包括多次出现的列标识符

我想合并两个表:

文件一:

1 今天
2 明天
3 红色

文件2:

1 很多
1 有时
2 在工作中
2 在家里
2 有时
3 新的

期望输出(文件 3):

1 今天很多
1 今天有时
2 明天上班
2 明天在家
2 明天有时
3 红色 新

我想出了以下几点:

awk -F '[\t]' -v OFS='\t' '{i=$1;$1=x} NR==FNR{A[i]=$0;next} A[i]{print i,$0A[i]}' file2 file1 > file3

然而,它只给了我:

1 今天有时
2 明天有时
3 红色 新

答案1

您是否特别需要awk解决方案?  join file1 file2 > file3会做你想做的事。

答案2

尝试:

$ awk 'FNR==NR{a[$1]=$2;next};{$1 = $1"\t"a[$1]}1' OFS='\t' file1 file2
1   today   a lot
1   today   sometimes
2   tomorrow    at  work
2   tomorrow    at  home
2   tomorrow    sometimes
3   red new

相关内容