我想合并两个表:
文件一:
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