awk文件关联

工作中常用到需要将两个文件关联起来,可以使用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

  

 

posted @ 2021-09-18 11:23  西风发财  阅读(191)  评论(0编辑  收藏  举报