linux 中 awk命令实现文件按列精确匹配合并

 

001、

[root@pc1 test01]# cat a.txt
A:10
B:5
C:12
[root@pc1 test01]# cat b.txt
100 A
50 B
88 K
99 Y
42 C
[root@pc1 test01]# awk '{if(NR == FNR) {ay[$1] = $2} else {print $2, $1, ay[$2]}}' FS=":" a.txt FS=" " b.txt
A 100 10                 ## 一般输出
B 50 5
K 88
Y 99
C 42 12
[root@pc1 test01]# awk '{if(NR == FNR) {ay[$1] = $2} else if($2 in ay) {print $2, $1, ay[$2]}}' FS=":" a.txt FS=" " b.txt
A 100 10                 ##  精确输出
B 50 5
C 42 12

。 

 

posted @ 2023-09-08 13:48  小鲨鱼2018  阅读(213)  评论(0编辑  收藏  举报