AWK NR,FNR区别

AWK是Linux中的一个文本处理工具,NR和FNR是两个记录文件记录的参数。其中的差异,下面简单的介绍下。

NR:文件的记录数量,如果是多个文件的话,数量是一直相加。(如果A文件有3条记录,B文件有4条记录,那么NR的值是7)。

FNR:每个文件的数量。(如果A文件有3条记录,B文件有4条记录,那么FNR的值是1 2 3 1 23 4)就是会把每个文件的数量都列出来。

现有两个文件:

cat  stu.txt

小明|001

小红|002

小张|003

cat score.txt

85|001

90|002

95|003

现在输出每个人对应的姓名|学号|成绩(小明|001|85)

awk –F \|  ‘NR==FNR{a[$2]=$0;next} {print a[$2]}”|”$1’stu.txt score.txt

解释说明:

如果NR的值和FNR的值相等的话那么说明匹配的是第一个文件stu.txt,这时候把$2的值作为下标,等到NR!=FNR的时候,就是条件为假的时候,读取第二个文件。此时score.txt的a[$2]会和S1全部输出就是我们所要的匹配了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值