type
status
date
slug
summary
tags
category
icon
password
1. 需求
业务取出两张CSV表,有相同主键,需要实现join效果
[root@e1zone awk_join]# cat a.txt id num 1 100 2 20 3 25 4 35 5 10 6 0 [root@e1zone awk_join]# cat b.txt id type 1 a3 2 a3l 3 a4l 4 a6l 5 a8l
期望得到的表如下
id type num 1 a3 100 2 a3l 20 3 a4l 25 4 a6l 35 5 a8l 10 6 unknown 0
2. awk实现
#核心是先构造数组,按数组匹配,else输出不匹配的 [root@e1zone awk_join]#awk 'NR==FNR{a[$1]=$0;next}{if($1 in a)print a[$1],$2;else print $1,"unknown",$NF}' b.txt a.txt id type num 1 a3 100 2 a3l 20 3 a4l 25 4 a6l 35 5 a8l 10 6 unknown 0