我有file1和file2。我想打印file1的所有行,如果:file1的第1列和第2列与file2的第1列和第2列匹配,则:将该行从file2添加到file1的行。
File1:
1 30 40 name info
1 3 2 desc info
1 3 2 id info
10 35 45 name info
File2:
20 30 40 numbers desc
1 3 2 desc name
Result:
1 30 40 name info -
1 3 2 desc info desc name
1 3 2 id info desc name
10 35 45 name info -
我做了这段代码:
awk 'NR==FNR {h[$1,$2]=$0;next}{print h[$1,$2],$0}' file1.txt file2.txt > result.txt
但它只打印匹配的行,我想要所有的行。
答案 0 :(得分:4)
awk '{k=$1 FS $2}
NR==FNR{a[k]=$4FS$5;next}{printf "%s %s\n", $0, (k in a?a[k]:"-") }' file2 file1