工作中常用到需要将两个文件关联起来,可以使用join完成,但是无论怎么排序都提示有未排序的行,然后发现awk可以处理,记录一一下
如a.txt
12334,Li
13435,Huang
23456,He
b.txt
12334,100
12345,68
23456,99
如果需要将两个文件根据第一列关联,只输出有关联的行:
awk -F',' '{BEGIN{OFS=","}}NR==FNR{a[$1]=$2}NR!=FNR{if(a[$1]!=""){print a[$1],$0}}' a.txt b.txt
NR为总行 FNR为当前文件的行,当读第一个文件时BR==FNR,当读第二个文件时,FNR会从0开始增加
也可根据参数,也可以操作多个文件
awk -F',' 'BEGIN{OFS=","}ARGIND==1{a[$1]=$2}ARGIND==2{if(a[$1]!=""){print a[$1],$0}}' a.txt b.txt