文件1和文件2的内容如下:
[root@k8s-master-135 ~]# cat 1
AREA 1
CITY 2
PROVINCE 2
TB_APP_VERSION_INFORMATION 2
TB_ATTENTION_POS 2
TB_ATTENTION_POS_SZ 2
TB_ATTENTION_UNIT 2
TB_CLASS_ACTIVE 2
TB_CLASS_INFO 2
TB_CS_TASK 2
[root@k8s-master-135 ~]# cat 2
AREA 1
CITY 2
PROVINCE 2
TB_ATTENTION_POS 2
TB_ATTENTION_POS_SZ 2
TB_ATTENTION_UNIT 2
TB_CLASS_ACTIVE 2
TB_CS_TASK 2
TB_CS_TASK_HS 2
需求:
- 打印出文件2第一列不存在文件1的内容
[root@k8s-master-135 ~]# awk 'FNR==NR{key[$1];next}!($1 in key){print $1}' 1 2
TB_CS_TASK_HS
- 打印出文件1第一列不存在文件2的内容
[root@k8s-master-135 ~]# awk 'FNR==NR{key[$1];next}!($1 in key){print $1}' 2 1
TB_APP_VERSION_INFORMATION
TB_CLASS_INFO
- 打印出两个文件第一列相同的内容
# awk 'FNR==NR{key[$1];next}($1 in key){print $1}' 1 2
AREA
CITY
PROVINCE
TB_ATTENTION_POS
TB_ATTENTION_POS_SZ
TB_ATTENTION_UNIT
TB_CLASS_ACTIVE
TB_CS_TASK
解释
awk 'FNR==NR{key[$1];next}!($1 in key){print $1}' 2 1
key[$1]: 把第一个文件的第一列做成数组,key为键值
next:跳到下一行
!(): 取反
$1 in key: 判断第二个文件的第一列是否在key数组