Você precisa especificamente de uma solução awk
?
join file1 file2 > file3
fará exatamente o que você quer.
Gostaria de mesclar duas tabelas:
Arquivo 1:
1 today
2 tomorrow
3 red
Arquivo 2:
1 a lot
1 sometimes
2 at work
2 at home
2 sometimes
3 new
Saída desejada (arquivo 3):
1 today a lot
1 today sometimes
2 tomorrow at work
2 tomorrow at home
2 tomorrow sometimes
3 red new
Eu fiz o seguinte:
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
No entanto, só me dá:
1 today sometimes
2 tomorrow sometimes
3 red new
Você precisa especificamente de uma solução awk
?
join file1 file2 > file3
fará exatamente o que você quer.
Tente:
$ 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
Tags text-processing awk join